¿Cuál es la explicación para la siguiente sintaxis?
$var1->$var2 // Note the second $
¿Cuál es la explicación para la siguiente sintaxis?
$var1->$var2 // Note the second $
Está llamando a una propiedad en $var1
que recibe el mismo nombre que el valor $var2
.
Por ejemplo:
$var2 = "name";
// The following are equivalent
$var1->name;
$var1->$var2;
$var1
es un objeto.
$var2
es (posiblemente) el nombre de una variable dentro de $var1
.
Si $var2="test";
esto se evalúa a:
$var1->test;
Usted puede hacer esto con todo tipo de cosas:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
Incluso, pueden obtener realmente de lujo:
echo $$name->$name2; // Echos hi
¿Qué pasa con los signos dobles de dólar? – CodyBugstein
@Imray http://php.net/manual/en/language.variables.variable.php –
¿Puedes incluir un ejemplo de un get/post con un else? –
Se significa consultar dinámicamente una propiedad en un objeto.
class A {
public $a;
}
// static property access
$ob = new A;
$ob->a = 123;
print_r($ob);
// dynamic property access
$prop = 'a';
$ob->$prop = 345; // effectively $ob->a = 345;
print_r($ob);
así $var1
es una instancia de un objeto, ->
significa el acceso a un miembro de ese objeto y $var2
contiene el nombre de una propiedad.
Gracias por todas las respuestas! – eft