次のphpコードがあります。
index.php
<?php
spl_autoload_extensions(".php");
spl_autoload_register();
use modules\standard as std;
$handler = new std\handler();
$handler->delegate();
?>
モジュール\標準\handler.php
<?php
namespace modules\standard {
class handler {
function delegate(){
echo 'Hello from delegation!';
}
}
}
?>
WAMP を実行している Windows 7 では、コードは "Hello from Delegation!" というメッセージを生成します。ただし、Linuxでは、次のようになります。
致命的なエラー: spl_autoload(): クラス modules\standard\handler を 15 行目の /var/www/index.php にロードできませんでした
Windows は WAMP で PHP 5.3.0 を実行しており、Linux は Ubuntu 9.10 で 5.3.2 dotdeb パッケージを実行しています。
これは私の Linux ボックスの構成の問題ですか、それとも、異なるオペレーティング システムで名前空間と自動読み込みが処理される方法の違いだけですか?