Was sind die Unterschiede zwischen den folgenden Codes?
$this->idKey
$this->$idKey
$this->{$idKey}
Was sind die Unterschiede zwischen den folgenden Codes?
$this->idKey
$this->$idKey
$this->{$idKey}
Liest die idkey
Eigenschaft des $this
Objekt:
$this->idKey;
liest die Variable Eigenschaft Name des $this
Objekt (example
in diesem Fall) so $this->example
:
$idKey = 'example';
$this->$idKey;
Gleiche wie oben ($this->example
), jedoch mit weniger Mehrdeutigkeit (ähnlich wie das Hinzufügen von Klammern zur Steuerung des Operanden o rder und nützlich in einigen Fällen):
$idKey = 'example';
$this->{$idKey};
$ this-> idKey
Dies ist, wie Sie eine Objekt-Eigenschaft in PHP
Class Car{
//member properties
var $color;
function printColor(){
echo $this->color; //accessing the member property color.
}
}
zugreifen würde$ this -> $ idKey
Dieses verwendet werden kann, wenn der Name der Eigenschaft selbst in eine Variable
$attribute ='color'
$this->$attribute // is equivalent to $this->color
gespeichert
$ this -> { '$ idKey'}
ist eine explizite Form oben genannten Ausdruck, aber es dient auch noch einen Zweck, Zugriff auf Eigenschaften einer Klasse, die ist Nicht a valid variable name.
$a = array('123' => '123', '123foo' => '123foo');
$o = (object)$a;
echo $o->123foo; // error
So könnte man die geschweifte Klammer Ausdruck verwenden diese
$a = array('123' => '123', '123foo' => '123foo');
$o = (object)$a;
echo $o->{'123foo'}; // OK!
$this->idKey
ist die Eigenschaft zu lösen idKey
des scoped Objekt.
$this->$idKey
und $this->{$idKey}
geben Sie das gleiche Ergebnis, das auf die Eigenschaft namens im Wert von $idKey
zugreifen.
class ButtHaver{
public idKey;
public buttSize;
}
$b = new ButtHaver();
$b->idKey = 'buttSize';
$b->buttSize = 'Large';
echo $b->idKey; // outputs 'buttSize'
echo $b->$idKey; // outputs 'Large'
echo $b->{$idKey}; // outputs 'Large'
die ${$}
Syntax ist eindeutig in bestimmten Fällen wie $$a[1]
zu lösen zu klären, welche ist die Variable, die Sie wollen. ${$a[1]}
für die Variable im Wert im Array und für das Array benannt in der Variablen $ a.
Sie können alles über es hier lesen: http://php.net/manual/en/language.variables.variable.php