spl_autoload_register和名称空间问题

时间:2011-12-23 22:59:28

标签: php oop namespaces spl-autoload-register

为什么会返回致命错误:在......中找不到类'Mynamespace \ String':

set_include_path(get_include_path().PATH_SEPARATOR.'library/');

spl_autoload_extensions('.php');

spl_autoload_register();

Mynamespace\String::myfunc('Test');

我的库/ String.php是:

<?php

namespace Mynamespace;

class String
{
    static function myfunc($needle)
    {
        echo $needle;
    }

请注意,如果删除命名空间,它就可以正常工作。

1 个答案:

答案 0 :(得分:2)

没有参数的

spl_autoload_register()仅注册spl_autoload()

默认自动加载器不会将名称空间转换为目录名称或任何内容。它只是将收到的类名称缩小,并附加.php后缀。因此,命名空间类只能在Windows上运行。