2010-02-20 111 views
3

什么的brakets意味着,在哪里读更多

return $container->{$resource}; 
+1

请忽略Safraz”最初的回答,因为PHP代码将永远不会被单时评估引号。然而,这*会被评估:'echo“{$ container - > $ resource}”;'。它将被评估为对象'$ container'的属性。属性名称是'$ resource'的值。但是,您的示例在放入双引号时不会给出预期的结果。请参阅雅达的答案更多信息:http://stackoverflow.com/questions/2302531/what-does-return-container-resource-mean/2302545#2302545 – 2010-02-20 15:00:25

回答

3

两种可能性:

  1. variable variable

    $ resource =“score”; //动态设置名称

    return $ container - > {$ resource}; //和return $ container-> score一样;

  2. 错字/初学者的错误

想键入程序员:

return $container->resource; // returns resource public member variable 
+0

这不太可能是一个错字。这将是很难“错误”美元符号和两个括号,并没有注意到。 – 2010-02-20 14:57:27

+1

是的。 {}很难输入,但是我发现很多程序员类型返回$ container - > $ resource; – Yada 2010-02-20 15:00:21

4

的支架是利用可变的变量。它可以更容易区分之间:

// gets the value of the "resource" member from the container object 
$container->resource; 

// gets the value of the "foo" member from the container object 
$resource = 'foo'; 
$container->$resource; 

你可以在这里阅读更多:http://php.net/manual/en/language.variables.variable.php