2010-02-20 3 views
3

Что в brakets значит, и где читать больше

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

Пожалуйста, игнорируйте первоначальный ответ Safraz», так как PHP-код не будет оценен, когда в одиночном кавычки. Однако это * будет * оцениваться: 'echo '{$ container -> $ resource}"; '. Он будет оцениваться как свойство объекта '$ container'. Имя свойства - это значение '$ resource'. Ваш пример, однако, не даст ожидаемого результата при двойных кавычках. См. Ответ Yada для получения дополнительной информации: http://stackoverflow.com/questions/2302531/what-does-return-container-resource-mean/2302545#2302545 –

ответ

3

Две возможности:

  1. variable variable.

    $ resource = "score"; // задайте имя динамически

    return $ container -> {$ resource}; // то же, что и return $ container-> score;

  2. опечатка/ошибка начинающий

программист имел в виду печатать:

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

Это вряд ли будет опечаткой. Было бы сложно «заманить» знак доллара и два скобки и не заметить. –

+1

Правда. {} Трудно вводить, но я видел много ошибок, когда тип программиста возвращает $ container -> $ resource; – Yada

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

Смежные вопросы