Ich fand dies im Code, was bedeutet das und was ist der Unterschied zwischen dieser und normalen $ dir-Variable?Was bedeutet {}?
global ${$dir};
$this->{$dir} = new $class();
Ich fand dies im Code, was bedeutet das und was ist der Unterschied zwischen dieser und normalen $ dir-Variable?Was bedeutet {}?
global ${$dir};
$this->{$dir} = new $class();
Es heißt komplexe lockige Syntax.
Jede skalare Variable, Array-Element oder Objekteigenschaft mit einer Zeichenfolge Darstellung kann über diese Syntax enthalten sein. Schreiben Sie einfach den Ausdruck auf die gleiche Weise, wie er außerhalb der Zeichenfolge angezeigt wird, und , dann wickeln Sie ihn in {und}. Da {nicht maskierbar ist, wird diese Syntax nur dann erkannt, wenn $ direkt auf {folgt. Verwenden Sie {\ $ bis erhalten Sie ein Literal {$.
Weitere Informationen:
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
Es wird den Wert des $dir
Variable und die Suche nach der Variable mit diesem Namen nehmen.
Wenn also $dir = 'foo';
, dann ist ${$dir}
das gleiche wie $foo
.
Ebenso, wenn $dir = 'foo';
, dann ist $this->{$dir}
das gleiche wie $this->foo
.
http://www.php.net/manual/en/language.variables.variable.php
Sie werden verwendet, um den Namen der Variablen Variablen zu wickeln.
Eine dynamisch erstellte Variable. Zum Beispiel:
$app = new App();
$app->someMethod('MyDB');
// global
$config = array('user' => 'mark', 'pass' => '*****');
class App {
// MyDB instance
protected $config;
public function someMethod($class) {
$dir = 'config';
// $config = array('user' => 'mark', 'pass' => '*****')
global ${$dir};
// not static variable !!!
$this->{$dir} = new $class();
}
}
class MyDB {
// body
}
Dies ist ein dynamischer Name. Mehr http://stackoverflow.com/questions/9257505/dynamic-variable-names-php –