我有一個奇怪的現象。我希望有人能向我解釋發生了什麼事情: 我想創建一個過濾器。起源類似於'-10'或'10 -20'或'20 +'(類型字符串),結果應該是'低於$ 10',...以及'product_price < 10',... for一個sql命令。PHP通過引用問題 - 不能改變類型?
但將數組存儲回原始字符串不起作用。它只是提供'$ Array'作爲結果。是否可以通過引用傳遞並更改類型?
謝謝你的知識!
foreach($filters as &$filter){
preg_match ('#^\-(\d+)$#ism', $filter, $match);
if ($match[1]){
$filter = array(
'Under $'.intval($match[1]),
'product_price < '.intval($match[1])
);
}
...
}
return $filtering;
}
PS:我不是在尋找一個解決方案,因爲我可以改變原產地串入陣,我也可以更改foreach
到pass by value
並創建像$ newFilter陣列的新數組[] = ...我只是好奇
謝謝!以下邏輯中的錯誤(未複製)導致此問題。它現在工作正常。 – Andreas