Qual è la spiegazione della seguente sintassi?
$var1->$var2 // Note the second $
Qual è la spiegazione della seguente sintassi?
$var1->$var2 // Note the second $
Si sta chiamando una proprietà su $var1
che ha lo stesso nome del valore di $var2
.
Ad esempio:
$var2 = "name";
// The following are equivalent
$var1->name;
$var1->$var2;
$var1
è un oggetto.
$var2
è (eventualmente) il nome di una variabile all'interno di $var1
.
Se $var2="test";
questa viene valutata a:
$var1->test;
Si può fare questo con ogni sorta di cose:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
È possibile anche ottenere veramente fantasia:
echo $$name->$name2; // Echos hi
Cosa sono i doppi simboli del dollaro? – CodyBugstein
@Imray http://php.net/manual/en/language.variables.variable.php –
Puoi includere un esempio di un get/post con un altro? –
E ' significa interrogare dinamicamente una proprietà in un oggetto.
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);
così $var1
è un'istanza di un oggetto, ->
indica l'accesso a un membro di quell'oggetto e $var2
contiene il nome di una proprietà.
Grazie per tutte le risposte! – eft