2011-12-23 25 views
1

なぜこれが致命的なエラーが返されます。クラス 'MYNAMESPACE \文字列' にありません...:spl_autoload_registerと名前空間の問題

set_include_path(get_include_path().PATH_SEPARATOR.'library/'); 

spl_autoload_extensions('.php'); 

spl_autoload_register(); 

Mynamespace\String::myfunc('Test'); 

マイライブラリ/ String.phpは次のとおりです。

<?php 

namespace Mynamespace; 

class String 
{ 
    static function myfunc($needle) 
    { 
     echo $needle; 
    } 

してください私はそれがうまく動作する名前空間を削除する場合はありません。

答えて

2

spl_autoload_register() paramsを登録しない場合は、ちょうどspl_autoload()となります。

デフォルトのオートローダーは、名前空間などに名前空間を変換しません。受け取ったクラス名を小文字にし、接尾辞.phpを追加します。したがって、名前空間のクラスは、誤ってWindows上でしか動作しません。

+0

gmail dot comでsimastを確認してください。08-Aug-2009 05:22 http://ca.php.net/manual/en/function.spl-autoload.php – oaziz

+0

ファイル名の接尾辞を上書きするだけでは、一般的な問題。 – mario

関連する問題