参见英文答案 > autoload functions in php 5个
根据PSR-0定义(带自动加载),我有一个带有类和函数定义的文件:
namespace Foo;
function b() {};
class Bar {}
我对该类进行了测试,放在同一名称空间中:
namespace Foo;
class BarTest {}
当我尝试访问测试类中的b()函数时,我得到一个未定义的函数错误:
namespace Foo;
class BarTest extends PHPUnit_Framework_TestCase
{
public function testSomething()
{
b();
Foo\b();
\b();
}
}
似乎没什么用.我怎么称呼这个功能?
解决方法:
PHP自动加载不支持函数.但它确实适用于静态类方法:
namespace Foo;
abstract class Util
{
static function doSomething() {
}
}
然后,您可以在其他一些文件当前命名空间中使用该类,并调用静态方法:
use Foo\Util;
Util::doSomething();
由于这是一个类方法,并且自动加载适用于类,因此这确实有效.
您可以在网站上的以下Q& A材料中找到此内容:
标签:php,namespaces,psr-0
来源: https://codeday.me/bug/20190709/1410887.html