Was ist die Erklärung für die folgende Syntax?
$var1->$var2 // Note the second $
Was ist die Erklärung für die folgende Syntax?
$var1->$var2 // Note the second $
Sie rufen eine Eigenschaft unter $var1
auf, die denselben Wert wie der Wert $var2
hat.
Zum Beispiel:
$var2 = "name";
// The following are equivalent
$var1->name;
$var1->$var2;
$var1
ist ein Objekt.
$var2
ist (möglicherweise) der Name einer Variablen innerhalb $var1
.
Wenn $var2="test";
dies ausgewertet:
$var1->test;
Sie können mit allen möglichen Dingen tun:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
Sie können auch wirklich Lust bekommen:
echo $$name->$name2; // Echos hi
Was ist mit den doppelten Dollarzeichen? – CodyBugstein
@Imray http://php.net/manual/en/language.variables.variable.php –
Können Sie ein Beispiel für ein get/post mit einem else? –
Es bedeutet dynamisch eine Eigenschaft in einem Objekt abfragen.
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);
so ist $var1
eine Instanz eines Objekts, bedeutet ->
Zugang zu einem Teil des Objekts und $var2
enthält den Namen einer Eigenschaft.
Vielen Dank für die Antworten! – eft