即使我可以在返回語句之前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雖然沒有引發錯誤,但日誌中沒有任何東西 –