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

Can PHP Traits be disabled in 5.4.x?

我有一个客户使用 Rackspace 云站点,在他们的平台上宣传 PHP 5.4,但他们的在线支持告诉我不能使用 traits。

使用 traits 时,我收到 500 错误并且发现代码没有问题,我要求他们的在线支持被告知 "it is not allowed in our environment"。使用下面的基本 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.

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

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

php_flag xcache.cacher 0

看来这不是机架空间问题而是 xcache 问题。