PHP:autoload找不到JsonSerializable

时间:2016-02-20 10:36:53

标签: php autoload

我使用JsonSerializable为我的实体将它们转换为json数组,如下所示:

namespace backoffice\entities;

class MyObject implements \JsonSerializable{
   //---do some stuff---
}

然后我使用我的Autoloader.php按命名空间加载类:

/**
 * Class Autoloader
 */

class Autoloader{
    static function register(){

        spl_autoload_register(array(__CLASS__, 'autoload'));
    }

    static function autoload($className){
        $className = str_replace('\\', DIRECTORY_SEPARATOR, $className);
        require_once $className.'.php';     
    }

}

autoload函数中,我将\\替换为服务器的directory_separator。
自动加载器加载我的类没有问题,但当他来到JsonSerializable(这是一个SPL接口)转换\\并从我的命名空间加载它(他将找不到它)并向我显示此错误:

Warning: require_once(backoffice/entities/JsonSerializable.php) [function.require-once]: failed to open stream: No such file or directory

如何使其正常工作并从SPL加载此界面?

1 个答案:

答案 0 :(得分:2)

我找到了答案 这是一个PHP版本的问题,JsonSerializable需要PHP 5.4,服务器在线使用PHP 5.3,这就是为什么他找不到它,并且它在localhost上工作,因为我使用的是PHP 5.5