Двойной знак доллара php - PullRequest
       2

Двойной знак доллара php

9 голосов
/ 14 ноября 2010

Возможен дубликат:
Что означает $$ (доллар доллар или двойной доллар) в PHP?

Я обнаружил, что использую такой код в одном из моих контроллеров:

foreach(get_object_vars($this->view) as $property=>$value){
   $$property = $value;
}

Есть ли проблемы с использованием свойства $$ для "локализации" свойств вида в простые переменные $?

редактирование:

Я должен добавить, что этот код запускается в области видоспецифического метода, поэтому нет проблемы переопределения локальных переменных. Это отвлекает некоторых из вас, ребят, от проблемы переопределения локальных переменных.

Ответы [ 4 ]

17 голосов
/ 14 ноября 2010

Проблема с $$ в PHP заключается в том, что вы создаете неизвестные имена переменных, которые могут переопределять имена переменных, которые вы уже используете.Это источник для незначительных ошибок программирования, и обычно его не следует использовать.

5 голосов
/ 14 ноября 2010

Ну, вы можете просто использовать функцию extract().Также этот фрагмент: get_object_vars($this->view) указывает, что вы должны иметь некоторый массив для хранения этих переменных, а не объект.

1 голос
/ 14 ноября 2010

Нет, это способ сделать это и единственный способ, если я не ошибаюсь. Хотя мой вопрос заключается в том, чтобы спросить, почему вы хотите сделать это вместо использования объектной переменной.

0 голосов
/ 06 марта 2014

Принятый ответ так неверен !!!Двойной доллар не является причиной проблем и не должен рассматриваться как таковой!Синтаксис двойного доллара на самом деле является превосходной функцией PHP, которая может быть полезна во многих ситуациях!

И если вы боитесь, что вы можете переопределять другие переменные, то это означает, что вы написали плохой код!И в любом случае, этот синтаксис используется более опытными программистами, поэтому новичкам следует избегать его, пока он не почувствует себя более уверенным в том, что он делает.

В некоторых ситуациях, когда это действительно полезно, циклически перебираются переменные на основе значениядругих переменных, динамических переменных, агностических переменных и т. д.

Опять же, позвольте мне закончить, сказав, что двойной доллар является мощной функцией и должен рассматриваться как таковой!С великой силой приходит большая ответственность!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...