Вопросы по теме 'magic-methods'

Волшебный метод PHP 5.3 __invoke
Эта тема расширяется на Когда делать/следует Я использую __construct(), __get(), __set() и __call() в PHP? , которые говорят о магических методах __construct , __get и __set . Начиная с PHP 5.3 появился новый магический метод под названием...
26755 просмотров
schedule 01.04.2022

Практическое применение магических методов PHP — __get, __set и __call
Обычно я старался держаться подальше от магических методов PHP, потому что они, похоже, запутывают открытый интерфейс объекта. Тем не менее, они, кажется, используются все больше и больше, по крайней мере, в коде, который я читал, поэтому я должен...
4244 просмотров
schedule 08.04.2023

PHPDoc и __callStatic
tl;dr Как правильно аннотировать (в PHPDoc) функции, реализованные через __callStatic ? Что еще более важно: есть ли способ заставить NetBeans и PHPStorm понять, что это статические методы? Мотивация Если вам нужна более широкая картина,...
6514 просмотров
schedule 24.01.2023

Лучшая практика: магические методы PHP __set и __get [дубликаты]
Возможный дубликат: Являются ли магические методы лучшей практикой в PHP? Это простые примеры, но представьте, что в вашем классе больше двух свойств. Что было бы лучшей практикой? а) Использование __get и __set class MyClass...
122652 просмотров
schedule 31.05.2023

Использование PDO::FETCH_CLASS с магическими методами
У меня есть класс, который использует магические методы для хранения свойств. Вот упрощенный пример: class Foo { protected $props; public function __construct(array $props = array()) { $this->props = $props; } public...
6680 просмотров
schedule 06.12.2022

Как создать магические методы в Objective C
Я пытаюсь разработать набор магических методов findByX в общем классе Model , который в конечном итоге будет выполнять запросы к Core Data с использованием объектов NSPredicate : (id)findByName; (id)findByCreated; ... Следуя...
454 просмотров
schedule 01.07.2022

Вызвать __get() для защищенных свойств с оператором -›?
Моя команда использует методы ленивой загрузки для загрузки подобъектов из нашей базы данных. Для этого мы используем волшебный метод __get() и делаем вызов базы данных. Все наши свойства защищены, поэтому метод __get вызывается извне объекта, но...
856 просмотров
schedule 17.01.2023

Запутанный вызов класса и метода в OpenCart
У меня есть класс контроллера фреймворка (OpenCart) (например: catalog/controller/product/product.php), код выглядит так: class ControllerProductProduct extends Controller { public function index() { //some code...
1749 просмотров
schedule 01.07.2023

__isset не возвращает правильный результат
Я пытаюсь связать объекты вместе, используя волшебные функции php. У меня есть абстрактный класс page, и каждая страница моего веб-сайта расширяет этот класс. В этом конструкторе абстрактного класса я пытаюсь получить пользовательский объект...
81 просмотров
schedule 05.01.2023

PHP - Защищенное свойство недоступно из того же класса библиотеки Zend 1, поэтому используется магия __set() и возникают ошибки
Приложение, которое я создаю, запускается локально, но на промежуточном сервере появляются флаги: Zend_Form_Exception: Invalid attribute "_name"; must not contain a leading underscore Проблема связана со строкой 500 файла...
237 просмотров
schedule 06.02.2023

Словарь Python plus-equal поведение
Я пытаюсь понять точный механизм обновления словаря Python с помощью d[key] += diff . У меня есть несколько вспомогательных классов для отслеживания вызовов магических методов: class sdict(dict): def __setitem__(self, *args, **kargs):...
9300 просмотров

Почему явные вызовы магических методов медленнее, чем засахаренный синтаксис?
Я возился с небольшим пользовательским объектом данных, который должен быть хэшируемым, сопоставимым и быстрым, когда я столкнулся со странным набором результатов синхронизации. Некоторые сравнения (и метод хеширования) для этого объекта просто...
420 просмотров

Как лучше всего справиться с ненайденными случаями магических методов PHP?
Иногда вы используете магические методы PHP, чтобы разрешить доступ только к некоторым определенным свойствам/методам, и не хотите раскрывать использование магических методов для этого в случаях ошибок. Примеры: __get или __set , которые...
51 просмотров

Почему добавление метода __new__ в мой класс вызывает исключение TypeError: object.__new__ не принимает аргументов?
У меня есть класс, который принимает некоторые аргументы конструктора, например: class Works: def __init__(self, x): pass Этот класс отлично работает; Я могу позвонить Works(5) без проблем. Однако добавление метода __new__...
61 просмотров
schedule 29.10.2022

__instancecheck__ - перезапись не дает результата - что я делаю не так?
Я пытаюсь сделать так, чтобы мой класс отображался как другой объект, чтобы обойти ленивую проверку типов в пакете, который я использую. В частности, я пытаюсь сделать так, чтобы мой объект отображался как экземпляр другого объекта (в моем случае...
1040 просмотров

Как отличить свойство, устанавливаемое с помощью ___setattr__ внутри класса и вне класса?
Есть ли способ в __setattr__() различать атрибут, установленный внутри класса или дочернего/наследующего класса, и атрибут, установленный вне текущего или дочернего класса? Я хочу изменить то, как установка атрибутов работает «извне», в моем...
81 просмотров
schedule 08.01.2023

Сопрограммы в магических методах?
скажем, у меня есть волшебный метод в Python 3.6, например: def __str__(self): return 'a {self.color} car'.format(self=self) Теперь я хочу добавить в него сопрограмму, что-то вроде: async def __str__(self): await...
526 просмотров

Python, как печатать полный стек, включая используемые магические методы (дандер-методы)?
Я пытаюсь отладить встроенный класс Python. Моя отладка привела меня в область магических методов (методов Дандера). Я пытаюсь выяснить, какие методы dunder вызываются, если таковые имеются. Обычно я бы сделал что-то вроде этого: import sys...
200 просмотров

python: изменить элементы магических методов, влияющих на операторы [дубликаты]
Я пытаюсь просто для тренировки создать объект python, который может содержать число с произвольными десятичными знаками. Все работает нормально, но у меня проблемы с взаимодействием объекта с математическими операторами. Вот как вы можете...
70 просмотров
schedule 24.10.2023