即使我可以在返回语句之前print_r结果,我总是会得到false,但此方法似乎总是返回false。有问题的方法....PHP方法将echo/print_r结果,但不会返回它们
public static function getGroupOptions($pid=0, $ogid=0) {
if($data = self::getOptionsData($pid, $ogid)) {
$Options = array();
Load::Object('ProductOption');
foreach($data as $key => $rec) {
$Option = new ProductOptionObject;
$Option->Populate($rec);
array_push($Options, $Option);
}
//echo "<pre>";print_r($Options);echo "</pre>";die;
return $Options;
}
return false;
}
print_r使用正确的数据转储ProductOptionObject的数组没有问题。
这是主叫线路...
$Options = ProductOptionFactory::getGroupOptions($this->pId, $this->getBean('ogId'));
//echo gettype($Options); echo $Options === false ? "FALSE" : "NOT FALSE"; die;
调试行始终打印 '布尔FALSE'。
使用:PHP 5.3.14/2.2.8的Apache2/CentOS的5.8
有没有在你的代码_actual_任何错字?您发布的代码似乎没问题。 – Passerby
你一定错过了一些东西。你的代码是好的 –
不,我已经结束了很多次,我想我可能刚刚发现了一些东西,一些缓存数据附带了一个huuuuge堆栈跟踪,可能导致php内部错误并跳过第一个返回语句? PHP虽然没有引发错误,但日志中没有任何东西 –