返回值我有一個PHP函數:無法從功能
function unserialize_recursive($data, $i = 0) {
$unserialized = unserialize($data);
if ($unserialized) {
$i++;
}
if (!is_string($unserialized) || unserialize($unserialized) === FALSE) {
/* placeholder - see explanation below */
return array($i, $unserialized);
} elseif (unserialize($unserialized) !== FALSE) {
unserialize_recursive($unserialized, $i);
}
return FALSE;
}
我調用這個函數有:
$data = unserialize_recursive($serialized_string);
var_dump($data);
但var_dump($data)
輸出爲bool(false)
。
但是,如果我在文本/* placeholder - see explanation below */
的位置添加var_dump($unserialized)
,我會得到預期的輸出。
那麼,爲什麼我不能返回該變量($unserialized
)?如果我在該函數中使用gettype()
,則返回array
。
我正在使用Netbeans,並且所有語法突出顯示代碼已正確形成,沒有輸入錯誤。我很困惑。我錯過了真正明顯的東西嗎?
爲什麼你使用'FALSE'而不是'false'? – Dai 2013-04-28 20:13:43
我想你忘了回報。您可能還需要通過引用傳遞您的$ i參數。 – Revent 2013-04-28 20:15:09
@戴:雖然這個問題是非常不相關的,我有我懷疑你真的感興趣,答案是,我出於可讀性原因使用大寫版本。 – EpF 2013-04-28 20:34:17