0

spl_autoload_register を機能させるのに苦労しています。

現在のフォルダ構造:

config/
      autoLoader.php
      dataBase.php

lib/
      userClass/
                user.php

web/
    userHomepage/
                 index.php  

config/autoLoader.php

spl_autoload_register(function($class)
{
    include_once $_SERVER['DOCUMENT_ROOT'] . '/project/lib/userClass/' . $class . '.ph';
});

lib/userClass/user.php

namespace userClass;

class userClass
{
    public function printName()
            { 
                echo 'Stackoverflow'
            }
}

ウェブ/userHomepage/index.php

include $_SERVER['DOCUMENT_ROOT'] . '/project/helpers/autoLoader.php';

$userClass = new userClass;

動作していませんが、userClass not found が返されます。この問題は名前空間が正しく印刷されていないことが原因で、代わりにパスを含める必要がありますか? 私はすでにphpのWebサイトをチェックして助けを求めましたが、明確ではありません。それに関するすべての投稿も調べましたが、正しい方向を指すものは何もありません!

4

1 に答える 1

0

おそらく$_SERVER['DOCUMENT_ROOT']web/userHomepage/ フォルダーへのポイントです。もしそうなら、あなたは使うべきです

spl_autoload_register(function($class)
{
  require $_SERVER['DOCUMENT_ROOT'] . '/../../lib/userClass/' . $class . '.php';
});

そして、autoLoader.php パスを更新します。requireの代わりに使用することをお勧めしincludeます。次に、問題を説明するエラー メッセージが表示されます。

于 2013-09-29T21:59:18.877 に答える