Una función (en realidad constructor de otra clase) necesita un objeto de class temp
como argumento. Así que defino interface itemp
e incluyo itemp $obj
como argumento de función. Esto está bien, debo pasar objetos class temp
a mi función. Pero ahora quiero establecer el valor predeterminado para este argumento itemp $obj
. ¿Cómo lograr esto? ¿O acaso no es posible?
voy a poner el código de prueba para aclarar:php function ¿cómo establecer el valor predeterminado como objeto?
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
usted podría utilizar mi pequeña biblioteca [ValueResolver] (https://github.com/LapaLabs/ValueResolver) en este caso, comprobar mi respuesta, por favor –