Giải thích cho cú pháp sau là gì?
$var1->$var2 // Note the second $
Giải thích cho cú pháp sau là gì?
$var1->$var2 // Note the second $
Bạn đang gọi điện cho một tài sản trên $var1
được đặt tên giống với giá trị $var2
.
Ví dụ:
$var2 = "name";
// The following are equivalent
$var1->name;
$var1->$var2;
$var1
là một đối tượng.
$var2
là (có thể) tên của một biến bên trong $var1
.
Nếu $var2="test";
này được đánh giá để:
$var1->test;
Bạn có thể làm điều này với tất cả các loại điều:
$test = array();
$name="test";
print_r($$name); // Prints array();
$test = new stdClass;
$test->hello = "hi";
$name2="hello";
echo $test->$name2; // Echos hi
Bạn thậm chí có thể nhận được thực sự ưa thích:
echo $$name->$name2; // Echos hi
Dấu hiệu đô la đôi có gì? – CodyBugstein
@Imray http://php.net/manual/en/language.variables.variable.php –
Bạn có thể đưa một ví dụ về việc nhận/đăng với người khác không? –
Nó có nghĩa là truy vấn động một thuộc tính trong một đối tượng.
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);
nên $var1
là một thể hiện của một số đối tượng, ->
nghĩa quyền truy cập vào một thành viên của đối tượng đó và $var2
chứa tên của một bất động sản.
Cảm ơn tất cả các câu trả lời! – eft