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?