What does the PHP syntax $var1

以下语法的解释是什么?

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


$var1 is an object.

$var2 is (possibly) the name of a variable inside $var1 .

If $var2="test"; this is evaluated to:

$var1->test;

You can do this with all sorts of things:

$test = array();
$name="test";
print_r($$name); // Prints array();

$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi

You can even get really fancy:

echo $$name->$name2; // Echos hi

It means dynamically query a property in an object.

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);

so $var1 is an instance of some object, -> means access to a member of that object and $var2 contains the name of a property.

链接地址: http://www.djcxy.com/p/1764.html

上一篇: >“意味着/指在PHP中?

下一篇: PHP语法$ var1是什么?