0

PHPで名前空間がどのように機能するかを理解しようとしていますが、本当に幸運ではありませんでした

誰かが私がここで間違っていることを教えてくれることを願っています:)

コード

require_once 'Vatcode.php';
$Vatcode = new \resource\Vatcode();

Vatcode.php

namespace resource;

require_once Ini::get('path/class').'/Resource.php';

class Vatcode extends Resource {
    public function __construct(){
        echo 'works!';
    }
}

リソース.php

namespace resource;

class Resource {

}

エラー

Fatal error:  Class 'resource\Ini' not found in Vatcode.php
4

1 に答える 1

3

それは単に名前空間の問題です。あなたのクラス Vatcode は名前空間リソースにあります。もし、VatCode 宣言のファイルで使うnameofclas::...new nameofclass()、名前空間 ressource でクラスを取得しようとします。ドキュメント内でクラス Ini を使用する場合は、2 つの解決策があります。

最初に完全修飾名を付けます:

require \namespace\of\ini\Ini::get('path/class').'/Resource.php';

get メソッドを使用する前に、2 番目に「use」キーワールドを使用します。

use \namespace\of\ini\Ini;
require_once Ini::get('path/class').'/Resource.php';

いずれにせよ、Iniが「名前空間なし」(グローバル名前空間が正確な言葉です)にある場合は、私が提供したソリューションを使用する必要がありますが、\Ini代わりに\namespace\of\ini\Ini

于 2012-11-10T19:52:45.063 に答える