В чем объясняется следующий синтаксис?
$var1->$var2 // Note the second $
В чем объясняется следующий синтаксис?
$var1->$var2 // Note the second $
Вы вызываете свойство на $var1
, которое имеет то же значение, что и значение $var2
.
Например:
$var2 = "name";
// The following are equivalent
$var1->name;
$var1->$var2;
$var1
- это объект.
$var2
(возможно) название переменной внутри $var1
.
Если $var2="test";
это оценивается в:
$var1->test;
Вы можете сделать это со всеми видами вещей:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
Вы даже можете получить действительно фантазии:
echo $$name->$name2; // Echos hi
Что с двойными знаками доллара? – CodyBugstein
@Imray http://php.net/manual/en/language.variables.variable.php –
Можете ли вы привести пример get/post с else? –
It означает динамически запрашивать свойство в объекте.
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);
так $var1
является экземпляром какого-либо объекта, ->
означает доступ к члену этого объекта и $var2
содержит имя свойства.
Спасибо за все ответы! – eft