我遇到了一个非常奇怪的方法参数问题。
我有这个方法:
public function getOverstock($getQtyOrdering = false) {
var_dump('here', $getQtyOrdering);
if ($getQtyOrdering === false) {
return $this->overstock;
}
//sort the collection by the quantity field before returning
$iterator = $this->overstock->getIterator();
$iterator->uasort(function ($a, $b) {
return ($a->getQty() < $b->getQty()) ? 1 : -1;
});
$sortResult = new \Doctrine\Common\Collections\ArrayCollection(iterator_to_array($iterator));
return $sortResult;
}
这就是这样称呼的:
$overstocks = $line->getOption()->getOverstock(true);
转储参数时,它始终为false。这怎么可能?
答案 0 :(得分:1)
您提供的内容没有任何问题。这也不是一个固定的东西。
如果那个方法变得虚假,那么某个地方你有代码用假(或没有)调用那个方法,或者调用被一路上的东西拦截,没有一个我们有足够的信息/代码来告诉你一个方式或其他。
我们可以说,PHP不会随机覆盖默认的arg。