Using object property as default for method property

error-handling, parameters, php

Solution

This isn't much better:

public function createShipment($startZip, $endZip, $weight=null){
    $weight = !$weight ? $this->getDefaultWeight() : $weight;
}

// or...

public function createShipment($startZip, $endZip, $weight=null){
    if ( !$weight )
        $weight = $this->getDefaultWeight();
}

Problem

I'm trying to do this (which produces an unexpected T_VARIABLE error): ``` public function createShipment($startZip, $endZip, $weight = $this->getDefaultWeight()){} ``` I don't want to put a magic number in there for weight since the object I am using has a `"defaultWeight"` parameter that all new shipments get if you don't specify a weight. I can't put the `defaultWeight` in the shipment itself, because it changes from shipment group to shipment group. Is there a better way to do it than the following? ``` public function createShipment($startZip, $endZip, weight = 0){ if($weight <= 0){ $weight = $this->getDefaultWeight(); } } ```

Original source