我遇到了以下问题:
这是我的超级基础课程:
class A
{
function foo()
{
echo "bar";
}
}
现在在类声明的前面我使用以下代码:
$a = new A();
$a->foo();
当我在浏览器中打开php文件时,输出为“bar”。精细!
现在我想在另一个文件中做同样的事情。
直接在第一个地方我声明了以下命名空间:namespace model\dbAction;
这是我上面的类文件所在的路径。
所以在另一个php文件中我执行以下操作:
$a = new \model\dbAction\A();
$a->foo();
但是我没有得到任何输出和其他代码之后就不会运行所以看起来它在类的实例化后直接中断。
为什么在另一个文件中实例化类的任何想法都不起作用?
谢谢!
完整代码第一个php文件:
<?php
namespace model\dbAction;
class A
{
function foo()
{
echo "bar";
}
}
第二个文件的完整代码(我在浏览器中调用):
$a = new \model\dbAction\A();
$a->foo();
答案 0 :(得分:1)
您仍然需要include
该文件 - 提供命名空间本身不会包含该文件...除非您使用的是自动加载器。请参阅:How do I use PHP namespaces with autoload?