我正在对php5进行第一次测试。更具体地说,我正在尝试使用命名空间,但似乎php没有解析命名空间。这是我做过的测试:
文件1:test.php
<?
namespace \first_test;
class Test {
function test_function(){
print "works";
}
}
?>
文件2:use_namespace.php
<?
use \first_test;
$a=new \first_test\Test();
$a->test_function();
?>
我收到致命错误: 致命错误:找不到类'first_test \ Test' here_the_path_where use_namespace.php是。
任何帮助表示感谢。
P.S。这两个文件都在同一目录下,在Windows上为php 5.3.9。
答案 0 :(得分:2)
在声明命名空间时不需要\
,只需要从中调用函数时就需要它。
<?php
namespace first_test;
// ...
?>
此外,在您的第二个文件中,您需要include test.php
,否则它不知道first_test
是什么。
答案 1 :(得分:0)
在第3方库中,他们最有可能使用自动加载器,该自动加载器自动执行所有必需的内容。因此,如果您不想手动编写包含,请添加自己的自动加载器 http://php.net/manual/en/language.oop5.autoload.php
这是一个通用的方法,您的入口点包含自动加载器,因此所有包含的文件将自动使用它。可以在https://www.php-fig.org/psr/psr-4/
中找到对此进行编码的标准描述。