PHP 无法使用命名空间创建 class 的实例
PHP can not create instance of class with namespace
我遇到了以下问题:
这是我的超级基础class:
class A
{
function foo()
{
echo "bar";
}
}
现在在 class 声明前面,我使用以下代码:
$a = new A();
$a->foo();
当我在浏览器中打开 php 文件时,输出为 "bar"。很好!
现在我想在另一个文件中做同样的事情。
首先我直接声明了以下命名空间:
namespace model\dbAction;
这是我上面class的文件所在的路径。
所以在另一个 php 文件中,我执行以下操作:
$a = new \model\dbAction\A();
$a->foo();
但是我没有得到任何输出,之后的其他代码也不会运行,所以看起来它在 class.
实例化后直接中断了
知道为什么在另一个文件中实例化 class 不起作用吗?
谢谢!
完整代码优先php 文件:
<?php
namespace model\dbAction;
class A
{
function foo()
{
echo "bar";
}
}
第二个文件的完整代码(我在浏览器中调用):
$a = new \model\dbAction\A();
$a->foo();
您仍然需要 include
文件 -- 提供命名空间本身不会为您包含文件...除非您使用的是自动加载器。参见:How do I use PHP namespaces with autoload?
我遇到了以下问题:
这是我的超级基础class:
class A
{
function foo()
{
echo "bar";
}
}
现在在 class 声明前面,我使用以下代码:
$a = new A();
$a->foo();
当我在浏览器中打开 php 文件时,输出为 "bar"。很好!
现在我想在另一个文件中做同样的事情。
首先我直接声明了以下命名空间:
namespace model\dbAction;
这是我上面class的文件所在的路径。
所以在另一个 php 文件中,我执行以下操作:
$a = new \model\dbAction\A();
$a->foo();
但是我没有得到任何输出,之后的其他代码也不会运行,所以看起来它在 class.
实例化后直接中断了知道为什么在另一个文件中实例化 class 不起作用吗?
谢谢!
完整代码优先php 文件:
<?php
namespace model\dbAction;
class A
{
function foo()
{
echo "bar";
}
}
第二个文件的完整代码(我在浏览器中调用):
$a = new \model\dbAction\A();
$a->foo();
您仍然需要 include
文件 -- 提供命名空间本身不会为您包含文件...除非您使用的是自动加载器。参见:How do I use PHP namespaces with autoload?