Articles of Магические методы

Как получить доступ к нескольким свойствам с помощью магического метода (__ get & __set)?

Недавно я изучил магические методы __get и __set и задавался вопросом, как на самом деле установить и получить несколько свойств в классе. Я знаю, что он отлично работает только с одной переменной или массивом, но я не уверен в доступе к нескольким переменным. Есть ли кто-нибудь, кто мог бы объяснить это мне? class myMagic2 { […]

php 5.1.6 magic __toString метод

В codeigniter Im пытается использовать этот плагин, который требует, чтобы я реализовал метод toString в своих моделях. Мой метод toString просто делает public function __toString() { return (string)$this->name; } На моей локальной машине с php 5.3 все работает нормально, но на производственном сервере с php 5.1.6 он показывает «Object id # 48», где должно отображаться […]

PHP – Zend сказал, избегайте Волшебных Методов?

Я читал эту страницу – http://deaduseful.com/blog/posts/50-php-optimisation-tips-revisited И одна из рекомендаций заключалась в том, чтобы избегать использования Магических методов, приведенных в PDF-файле Zend, который не дает никаких оснований для его рекомендации избегать их. После некоторого поиска в Google (и, вернувшись сюда к несвязанному вопросу), я задавался вопросом, есть ли у кого-то какие-либо рекомендации на этом фронте? […]

Магические методы __get и __set – пример из ZCE

класс Магия { public $ a = "A"; protected $ b = array ("a" => "A", "b" => "B", "c" => "C"); protected $ c = array (1,2,3); public function __get ($ v) { echo "$ v"; return $ this-> b [$ v]; } public function __set ($ var, $ val) { echo "$ var: […]

Являются ли методы магии лучшей практикой в ​​PHP?

Являются ли методы магии лучшей практикой в ​​PHP?

Запуск __call () в PHP, даже когда существует метод

В документации по PHP говорится о __call() : __call () запускается при вызове недоступных методов в контексте объекта. Есть ли способ, которым я могу вызвать __call() даже когда метод существует, до __call() фактического метода? Или, есть ли какой-нибудь другой крюк, который я могу реализовать, или другой способ, который обеспечил бы эту функциональность? Если это имеет […]

Методы магии PHP __get и __set

Если я не ошибаюсь, __set методы __get и __set допускают перегрузку → get и set . Например, следующие операторы должны ссылаться на метод __get : echo $foo->bar; $var = $foo->bar; И следующий должен использовать метод __set : $foo->bar = 'test'; Это не работает в моем коде и воспроизводится с помощью этого простого примера: class foo […]

Наилучшая практика: магические методы PHP __set и __get

Возможный дубликат: Являются ли методы магии лучшей практикой в ​​PHP? Это простые примеры, но представьте, что у вас больше свойств, чем у двух в вашем классе. Что было бы лучшей практикой? a) Использование __get и __set class MyClass { private $firstField; private $secondField; public function __get($property) { if (property_exists($this, $property)) { return $this->$property; } } […]

PHP – косвенная модификация перегруженного имущества

Я знаю, что этот вопрос задавали несколько раз, но ни у кого из них нет реального ответа на обходной путь. Может быть, есть один для моего конкретного случая. Я создаю класс mapper, который использует магический метод __get() для ленивой загрузки других объектов. Это выглядит примерно так: public function __get ( $index ) { if ( […]

__get / __ set / __ вызов вопросов производительности с помощью PHP

У меня есть настраиваемая инфраструктура MVC PHP, в которой я переписываюсь, и у меня возник вопрос о производительности и магических методах. С модельной частью рамки я думал, что если методы __get / __set magic приведут к слишком большому результативному результату, который стоит использовать. Я имею в виду, что доступ к (считыванию и записи) данных модели […]