1 Востаннє редагувалося Betterthanyou (28.09.2017 00:16:59)

Тема: ->{}

Як називається такий оператор "->{}" ?
Хочу дізнатися різницю між $this->{$name} і $this->$name

Ось для прикладу, в мене працює як перший варіант так і другий
[code=PHP]
// ...
public function createProperty($name, $value)
{
    $this->$name = $value;
}
// ...
[/code]
[code=PHP]
// ...
public function createProperty($name, $value)
{
    $this->{$name} = $value;
}
// ...
[/code]
Додаю нову власність

$ob->createProperty('var3', 'This name is called var3');
echo '<br>$ob->var3=',$ob->var3;

Де можна прочитати про цей оператор ?

2 Востаннє редагувалося koala (28.09.2017 07:59:10)

Re: ->{}

Це не оператор, це екранування операції зі змінними, яка дає змінну (variable variable).
Наприклад, можна зробити

public function createProperty($name, $value) {
    $this->{$name.$name} = $value;
}
$ob->createProperty('var3', 'This name is called var3');
echo '<br>$ob->var3var3=',$ob->var3var3;

А без фігурних дужок так не вийде.
І працює це не тільки в об'єктах, там тільки знак долару надто далеко стоїть:

$a='x';
$b='1';
${$a}=2; //або $$a
${$a.$b}=3;
echo $x.PHP_EOL.$x1;

http://php.net/manual/en/language.varia … riable.php

Подякували: Betterthanyou, Monolith, 221VOLT, leofun014