可选参数始终设置为默认值

时间:2016-06-29 14:25:48

标签: php doctrine

我遇到了一个非常奇怪的方法参数问题。

我有这个方法:

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。这怎么可能?

1 个答案:

答案 0 :(得分:1)

您提供的内容没有任何问题。这也不是一个固定的东西。

如果那个方法变得虚假,那么某个地方你有代码用假(或没有)调用那个方法,或者调用被一路上的东西拦截,没有一个我们有足够的信息/代码来告诉你一个方式或其他。

我们可以说,PHP不会随机覆盖默认的arg。