可以在5.4.x中禁用PHP Traits吗?

时间:2015-09-07 05:39:20

标签: php traits rackspace

我有一个客户使用Rackspace Cloud Sites在他们的平台上宣传PHP 5.4但我通过他们的在线支持告知我不能使用特征。

当使用特征时,我收到500错误,并且发现代码没有问题我要求他们的在线支持被告知“在我们的环境中不允许这样做”。使用下面的基本PHP示例代码会导致500内部服务器错误:

class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();

是否有某些原因导致Traits被禁用或甚至可能被禁用? phpinfo()报告的版本是5.4.10。

2 个答案:

答案 0 :(得分:2)

在与rackspace支持进行一些讨论后,似乎问题在于xcache和某些项目(如traits)的执行。将以下行添加到.htaccess可解决此问题:

php_flag xcache.cacher 0

似乎它不是机架空间问题,而是xcache问题。

答案 1 :(得分:0)

不能禁用Php特征。如果你对特质的使用有限,你可以注释掉"使用"语句。