Php два знака доллара

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Что означает 2 знака доллар?

27cm

Как сделать автоматический перевод из счёта на счёт?

Какая либа лучше всего подходит для SSE (Server-Sent-Events)?

Как загрузить картинку с одного сервера на другой?

Как решить проблемы интерполяции строк и доработать код чтобы работала пагинация при парсинге данных в php?

Поиск на сайте. Пишем «киа» — должен найти «KIA». Как?

Какой самый простой способ собрать PDF файл с данными из БД?

Почему не работают регулярные выражения preg_replace в php?

Как лучше запрятать важные данные в коде?

Как создать такой из аудио base64?

Как передать заголовок User-Agent через -A, вместо -H?

Минуточку внимания

  • Как запустить LLM на нескольких компьютерах сразу?
    • 3 подписчика
    • 0 ответов
    • 5 подписчиков
    • 7 ответов
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 0 ответов
    • 3 подписчика
    • 1 ответ
    • 2 подписчика
    • 2 ответа
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 2 ответа
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ

    Источник

    Double dollar sign php

    Is there any problem with using the $$property to «localize» view properties into simple $variables? edit: I should add that this code is run in the scope of a view-specific method, so there’s no problem of overriding local variables. This is to divert some of you guys from pointing out the problem of overriding local variables.

    4 Answers 4

    The problem with $$ in PHP is that you create unknown variable names, that may override variable names you already use. It is a source for subtle programming errors, and should generally not be used.

    Thanks, makes sense. However, if I use it within the context of the the view object, where the only properties are the values to be accessed by the view script, i still tihnk one can freely use it.

    I disagree with this answer. If you are using this in a View object then you’re in a limited scope. The $$ is only a problem if you’re always working in global scope which you aren’t doing if you’re using an MVC structure. If your View object really needs some ‘reserved’ variables that you don’t want overridden, name it something like $_var so you won’t accidentally override it.

    Well, you could just use extract() function. Also that fragment: get_object_vars($this->view) indicates that you should rather have some array to store those variables, not an object.

    Extract only works for arrays. The reasons I’m using an object is because of the underlying code structure. I don’t see a problem in using get_object_vars();

    Nope, that’s the way to do it and the only way if I’m not mistaken. Though my question would be to ask why you’d want to do that instead of using the object variable.

    That’s because I supply the values to a view script, which accesses much more elegantly values in $value fashion, rather than $this->value fashion.

    The accepted answer is so wrong. The double dollar is not a cause for problems, and shouldn’t be considered as such! The double dollar syntax is in fact a superb PHP feature that can be useful in many situations!

    And if you fear that you might be overriding other variables by using it, then this means you have written poor code! And anyway, this syntax is used by more experienced programmers, so the beginners should avoid it, until feeling more sure about what they are doing.

    Some situations where this is really useful is looping through variables based on the value of other variables, dynamic variables, agnostic variables, etc.

    Again, let me close by saying that the double dollar is a powerful feature and should be treated as such! With great power comes great responsibility!

    Источник

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

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

    4 ответа

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

    Спасибо, имеет смысл. Тем не менее, если я использую его в контексте объекта представления, где единственными свойствами являются значения, к которым должен обращаться сценарий представления, я все еще могу свободно использовать его.

    Я не согласен с этим ответом. Если вы используете это в объекте View, тогда вы находитесь в ограниченной области. $$ — это проблема, только если вы всегда работаете в глобальной области, чего вы не делаете, если вы используете структуру MVC. Если вашему объекту View действительно нужны некоторые «зарезервированные» переменные, которые вы не хотите переопределять, назовите его как-то вроде $_var чтобы случайно не переопределить его.

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

    Извлечение работает только для массивов. Причины, по которым я использую объект, связаны с базовой структурой кода. Я не вижу проблемы в использовании get_object_vars ();

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

    Это потому, что я предоставляю значения скрипту вида, который получает более элегантный доступ к значениям в $ value, а не в $ this-> value fashion.

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

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

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

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

    Мощный, не мощный, но из связанного вопроса кажется, что это просто ярлык для (простой формы) eval . Это делает что-нибудь кроме этого?

    Ещё вопросы

    • 1 различная точность числового текста в зависимости от числового значения
    • 0 Неправильный вывод при написании SQL-запроса с использованием функций Postgis
    • 1 Как измерить время отклика на действия в приложениях Android?
    • 0 Как сделать систему комментариев для конкретного поста и получить его?
    • 0 Невозможно загрузить c ++ dll, даже VB.Net EXE и DLL в одной папке
    • 1 Линейный поиск по указанному массиву, чтобы получить требуемый индекс элемента
    • 1 Как изменить цвет фигуры с мольбертом
    • 0 Зацикливание SVG прямоугольников из базы данных
    • 1 Изменяемый объект Java как ключ карты, но с использованием hashCode () по умолчанию
    • 0 Доступ к объекту внутри массива, который находится внутри другого объекта, используя PHP
    • 0 Угловой отфильтрованный результат не обновляется в пользовательском интерфейсе
    • 0 Цвет фона не отображается без позиции: абсолютный
    • 1 Как выполнить множественную агрегацию на объекте в Elasticsearch с использованием Python?
    • 0 Передача вектора в функцию
    • 0 Ошибка Zend Framework 2: оператор не может быть выполнен при реализации функции year в табличном шлюзе
    • 1 GUI в JAVA для отображения разных изображений в одном кадре
    • 1 Обрабатывать ложные аргументы
    • 0 Преобразовать этот запрос SQL в запрос mongodb —
    • 0 Попытка создать функцию, где я могу искать в моей базе данных и получать результаты поиска. ошибки
    • 0 Тикер новостей jQuery, скрывающийся за другими плагинами jQuery и изображениями
    • 1 Группировать массив объектов javascript на основе значения в свой собственный массив объектов
    • 1 Различать подклассы с помощью equals & hashcode
    • 1 Почему Java Thread искажает печать на консоль [дубликаты]
    • 0 Как получить ID оборудования в Java и C ++
    • 1 Как проверить, что сервер принимает соединения
    • 1 Как составить список строк
    • 1 Удалите некоторые значения массива для утверждения (транспортир)
    • 1 Как редактировать данные EXIF видеофайла mp4 в Windows Phone 8.1
    • 0 Как получить роль пользователя с помощью Zend framework2?
    • 0 Qt ActiveX извлекает количество страниц в текстовом документе
    • 1 Добавить фильтр в столбец колба + sqlalchemy отношения
    • 2 Я получаю утечку памяти, когда начинаю переход с общими элементами из элемента утилизатора
    • 0 Отображение div во время выполнения кода JavaScript
    • 0 Получение значения CSS и его обновление в SQL
    • 0 AngularJS просмотры нарушены после перенаправления oauth
    • 1 временная мертвая зона (ES6) не работает
    • 0 Ошибка MySQL 1215: невозможно добавить ограничение внешнего ключа для типа данных геометрии POINT
    • 0 Глядя, чтобы округлить цифры в столбце [дубликаты]
    • 0 двойной выход в Cout C ++
    • 1 Генерация пары ключей RSA на стороне клиента в приложении Google Web Toolkit через Google App Engine с библиотекой gwt-crypto
    • 1 Ошибка Python при разборе JSON
    • 0 IE7 z-index не работает событие после добавления позиции?
    • 1 Обновление до TLSV1.0 или 1.1 до TLSV1.2 в Android с использованием httpclient
    • 1 Скользящая средняя по фрейму данных для каждого пользователя. Питон, Панды
    • 0 Как использовать jQuery $ .extend (obj1, obj2)
    • 1 Получить данные из обратных вызовов
    • 1 Соединяйте строки без повторения разделителя
    • 0 PHP — получить строки из базы данных, где слово отсутствует в определенном тексте
    • 1 Как найти приблизительные координаты из четырех разных списков и координат
    • 0 MySQL имеет функцию заполнения (), когда я использую month () для заполнения данных?

    Источник

    Читайте также:  Скрипты php для linux
Оцените статью