Функция php как установить значение по умолчанию как объект?

Функция (фактически конструктор другого класса) требует в качестве аргумента объект class temp . Поэтому я определяю interface itemp и включаю itemp $ obj в качестве аргумента функции. Это нормально, я должен передать объекты class temp моей функции. Но теперь я хочу установить значение по умолчанию для этого аргумента itemp $ obj . Как этого добиться? Или это невозможно?
Я помещу тестовый код, чтобы прояснить:

interface itemp { public function get(); }

class temp implements itemp
{
    private $_var;
    public function __construct($var = NULL) { $this->_var = $var; }
    public function get() { return $this->_var ; }
}
$defaultTempObj = new temp('Default');

function func1(itemp $obj)
{
    print "Got : " . $obj->get() . " as argument.\n";
}

function func2(itemp $obj = $defaultTempObj) //error : unexpected T_VARIABLE
{
    print "Got : " . $obj->get() . " as argument.\n";
}

$tempObj = new temp('foo');

func1($defaultTempObj); //Got : Default as argument.
func1($tempObj); //Got : foo as argument.
func1(); //error : argument 1 must implement interface itemp (should print Default)
//func2(); //could not test as i can't define it
16
задан Sudhi 15 August 2011 в 12:36
поделиться