如何在php上解析命名空间?

时间:2012-01-20 14:58:09

标签: php namespaces

我正在对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。

2 个答案:

答案 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/

中找到对此进行编码的标准描述。