2017-01-03 3 views
-1

Вот моя проблема, когда я определил имя класса с «use» в php, а затем попытался включить файл, он теряет «используемое имя», которое я определил в родительском файле. Как это:php теряет мое «использование» имени во включенном файле

File1.php:

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

File2.php:

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

Когда я исполню мой код File1.php появляется эта ошибка:

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.

Вам нужно добавить заявление use в файл File2.php.

обновление:

Если включаемый файл находится в том же пространстве имен (\cdb), то вам не нужно импортировать \cdb\Date.

В других случаях вы можете использовать class_alias() создать другое имя для класса во время выполнения, но это немного сложнее и лучше использовать обычный явный импорт.

+0

Спасибо за разъяснение человека, theres способ сделать это? Вместо вызова «\ cdb \ Date» используйте только «Дата» в моих включенных файлах – bCerquiare

+0

. Я обновил ответ. – Timurib

Смежные вопросы