Перехват ++/--

demongloom

Новичок
Перехват ++/--

Можно ли перехватить операции над переменной как $a++ или $a-- если она является обьектом?

PHP 5.0
 
Нет! ZE2 не поддерживает перегрузку операторов. За исключением оператора = (overloading __set/__get).
 
зато работа с *атрибутами* идет именно через __set/__get.
включая инкремент/декремент.
 
tony2001
Если аттрибут существует, то обновляется значения аттрибута, а __set/__get не вызываются! Они вызываются только в случае отсутствия самих аттрибутов, как и __call.

Еще следует отметить метод __toString(), но он работает только с конструкциями echo/print.
 
Да это мне все известно. Думал, а вдруг есть некий магический итератор, типа array access, который позволяет перехватывать и такое действие над переменной-обьектом.

ЗЫ:

А как через __set(), __get() перехватывать для обьявленых и существующих переменных класса?
 
>Если аттрибут существует, то обновляется значения аттрибута, а __set/__get не
>вызываются! Они вызываются только в случае отсутствия самих аттрибутов, как и __call.

я в курсе.
но спасибо, что сообщил.
 
Жаль. Хочется больших возможностей в overloading.
К примеру перехват различных операций +,-,/,*,., и т.д.
 
Хых... типичное опен сурсное предложение. Типа как RTFM.

Только чтоб я такой патч написал мне нужно:
1. Знать очень хорошо си.
2. Знать очень хорошо исходники пхп.
3. Быть как минимум крупным девелопером в zend.
4. Выиграть крупную агит компанию по внедрению этого в пхп 5.1, с разьеснением леммингам вопроса "нах оно надо?".

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

правда, могу заранее разочаровать - 99%, что это никогда не войдет в PHP.
PHP - это не C++.
 
поэтому и жаль что не с++. хотелось бы и такую гибкость. просто для моего фреймворка это было бы решением многих проблем.
 
Потому что я хочу реализовать типизацию. Создал классы различных типов, начиная от булевых и кончая массивами. Просто некоторые вещи невозможно реализовать, так как нет просто напросто столь глубокого overloading. Хорошо что хоть array access есть.
 
Сверху