PHP语法$ var1-> $ var2是什么意思?

时间:2010-02-23 05:42:06

标签: php syntax

以下语法的解释是什么?

$var1->$var2 // Note the second $

3 个答案:

答案 0 :(得分:17)

您正在调用$var1上的某个属性,其名称与$var2的值相同。

例如:

$var2 = "name";

// The following are equivalent
$var1->name;
$var1->$var2;

答案 1 :(得分:9)

$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

答案 2 :(得分:2)

这意味着动态查询对象中的属性。

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包含属性的名称。