2016-06-29 9 views
0

Ich habe ein sehr seltsames Problem mit Methodenparametern.Optionaler Parameter ist immer auf den Standardwert gesetzt

Ich habe diese Methode:

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; 

    } 

die wie folgt aufgerufen:

$overstocks = $line->getOption()->getOverstock(true); 

Wenn der Parameter abgeladen wird, es ist immer falsch. Wie ist das möglich?

+2

Was Sie damit implizieren, ist mit dem bereitgestellten Code nicht möglich. Etwas anderes passiert. –

+0

möglicherweise rufen Sie die Funktion von einem anderen Ort? – Izopi4a

+0

@JonStirling Ich bin perfekt darauf vorbereitet, aber nichts, woran ich denken kann oder Google bringt mich in die Nähe dieser Symptome. Wenn es andere nützliche Informationen gibt, habe ich keine Ahnung, was es ist. – steelpush

Antwort

1

Es ist nichts falsch an dem, was Sie zur Verfügung gestellt haben. Dies ist auch keine Einstellungssache.

Wenn diese Methode falsch wird, dann haben Sie irgendwo Code, der diese Methode entweder mit false (oder gar nichts) aufruft, oder der Aufruf wird von etwas auf dem Weg abgefangen, von dem wir nicht genug Informationen/Code haben in gewisser Weise.

Alles, was wir sagen können, ist, dass PHP nicht zufällig einen Arg mit einem Standard überschreibt.