Intereting Posts

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

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

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

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

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

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

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

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

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

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

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

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

Некоторые ситуации, когда это действительно полезно, – это цикл через переменные, основанные на значении других переменных, динамических переменных, агностических переменных и т. Д.

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