我有一个我以前没见过的非常严重的问题。
在我们使用开源SQC eshop,PHP版本5.3.3-7 + squeeze15的网站上,可变内存存在某种问题我认为。
SQC使用notORM,此处问题以致命错误“非对象notORMResult上的函数调用”开始。
所以我深入挖掘,发现NotORM
的构造函数看起来像这样:
function __construct(PDO $connection, NotORM_Structure $structure = null,NotORM_Cache $cache = null) {
$this->connection = $connection;
if($_GET['test']){
var_dump($structure);
}
if (!isset($structure)) {
$structure = new NotORM_Structure_Convention;
}
if($_GET['test']){
var_dump($structure);
}
$this->structure = $structure;
if($_GET['test']){
var_dump($this->structure);
exit("1");
}
$this->cache = $cache;
}
因此输出为NULL,因为构造函数没有得到结构参数,所以我们创建了一个对象。第二个输出是对象。然后我们将对象设置为属性,然后将THIRD OUTPUT设置为空
这怎么可能?该网站运行了大约一年半,直到昨天没有问题。我没有对PHP进行任何更新,这件事真的吓坏了我,因为它不是一个持续的问题。它有时在2小时后发生,有时在2分钟后发生,我真的不知道为什么会发生这种情况。
顺便说一句......这只是它在整个脚本中发生的开始。设置了对象属性,但是当您想要读取它们时,它们会为您提供NULL。还有第二个网站在同一台服务器上运行,同样的php配置没有问题。
感谢您的任何想法:)