これが私のクラススクリプトです:
class.php
<?php
class testing {
function hurray () {
echo "Works.";
}
}
そして、私の呼び出しスクリプトは次のとおりです。
test.php
<?php
include_once "class.php";
include_once "claSs.php";
$a = new testing();
$a->hurray();
test.php を実行しようとすると
php test.php
以下のエラーが表示されます。
PHP 致命的なエラー: 行 2 の /private/var/www/temp/ClaSs.php でクラス テストを再宣言できません
*Nix OS は、大文字と小文字を区別しないファイル システムをサポートしています。つまり、ファイル名の参照に使用される大文字と小文字を区別します。上記のスクリプトは、ケースが変更された同じファイルをロードしていると言いましたが、Mac または PHP はそれを別のファイルと見なし、ランタイムにロードすると、上記のエラーが発生します。
私の質問:
- Mac OS X はそれを 2 つの異なるファイルと認識しますか?
- PHPは2つの異なるファイルだと思いますか? Windowsで上記のテストを試してみたところ、魅力的に機能したので疑問です。
- 私の理解は間違っていますか?
- 何百ものレガシーファイルを変更することはないので、この問題を解決する最善の方法は何ですか?
追加情報:
私の Mac OS X は、このリンクに従って Mac OS 拡張 (ジャーナリング) で構築されています。
File System Personality: Journaled HFS+
Type (Bundle): hfs
Name (User Visible): Mac OS Extended (Journaled)