我有一个客户使用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。
答案 0 :(得分:2)
在与rackspace支持进行一些讨论后,似乎问题在于xcache和某些项目(如traits)的执行。将以下行添加到.htaccess可解决此问题:
php_flag xcache.cacher 0
似乎它不是机架空间问题,而是xcache问题。
答案 1 :(得分:0)
不能禁用Php特征。如果你对特质的使用有限,你可以注释掉"使用"语句。