2017-01-03 3 views
-1

ここで私の問題は、PHPで "use"というクラス名を定義した後、ファイルをインクルードしようとすると、定義した "used name"親ファイルに保存します。phpがインクルードファイルの "use"名を失う

File1.php:

use \cdb\Date as H; 
echo "<br> > 1 > " . H::Now(); 
require 'File2.php'; 

File2.php:このように私は私のFile1.phpコードを実行すると

echo "<br> > 3 > " . H::Now(); 

このエラーが表示されます。

Fatal error: Class 'H' not found in File2.php on line 3

答えて

1

Scoping rules for importing

Importing rules are per file basis, meaning included files will NOT inherit the parent file's importing rules.

File2.phpにもuseステートメントを追加する必要があります。

更新:インクルードファイルが同じ名前空間(\cdb)である場合

あなたは\cdb\Dateをインポートする必要はありません。他の例で

、あなた実行時にクラスの別の名前を作成するためにclass_alias()を使用することができますが、通常の明示的なインポートを使用して少しトリッキーと良いです。

+0

明確化の男性のためにありがとう、theresそれを行う方法? "\ cdb \ Date"を呼び出す代わりに、インクルードファイルに "Date"だけを使用します。 – bCerquiare

+0

私は答えを更新しました。 – Timurib

関連する問題