Возможно, я плохо понял ваш вопрос; В этом случае вы могли бы привести пример того, что вы получаете, и чего вы ожидаете?
Вы уверены, что он будет пытаться загрузить функции из myfile.php
в foo
пространстве имен?
Учитывая У меня есть один файл (темп-2.php) который выглядит следующим образом:
<?php
namespace foo;
function my_function_this_file() {
var_dump(__FUNCTION__);
}
my_function_this_file();
include 'my_other_file.php';
my_function_the_other_file();
И еще один (my_other_file.php) который выглядит следующим образом:
<?php
function my_function_the_other_file() {
var_dump(__FUNCTION__);
}
Когда я вызываю первый из своего браузера, я получаю этот вывод:
string 'foo\my_function_this_file' (length=25)
string 'my_function_the_other_file' (length=26)
Это, по-видимому, указывает, что вторая функция не находится внутри какого-либо пространства имен, кроме глобального, что соответствует тому, что он не объявлен ни в одном пространстве имен.
Если я правильно помню, инструкция «namespace» действительна только для файла, в котором он используется, а не для включенных файлов.
Import names cannot conflict with classes defined in the same file страница из namespaces FAQ, кажется, указывает, что тоже.
Надеюсь, что это помогает, и я понял вопрос правильно ...
EDIT: Кстати, поменяв порядок из линиям, например:
<?php
include 'my_other_file.php';
namespace foo;
Wouldn» t: команда «namespace» должна быть первой из файлов: вы получите Fatal Error, если вы это сделаете:
Fatal error: Namespace declaration statement has to be the very first statement in the script
http://us2.php.net/manual/en/language.namespaces.basics.php Примеры на странице для примера. – koen