【发布时间】:2011-10-13 19:49:51
【问题描述】:
我有一个奇怪的现象。我希望有人可以向我解释那里发生了什么: 我想创建一个过滤器。来源类似于 '-10' 或 '10-20' 或 '20+' (类型字符串),结果应为 'Under $10', ... 以及 'product_price
但是将数组存储回原始字符串是行不通的。它只是提供'$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;
}
P.S.:我不是在寻找解决方案,因为我可以将原始字符串更改为数组,或者我可以将 foreach 更改为 pass by value 并使用 $newFilter[] 之类的数组创建一个新数组= ...我只是好奇
【问题讨论】:
标签: php pass-by-reference