нужен магический метод или что-то похожее

AmdY

Пью пиво
Команда форума
магический разве что __toString
if ("$obj") if (100 > "$obj")
но правильнее возвращать объект с интерфейсом для сравнений.
PHP:
interface Comparable {
    public function isEmpty()
    public function isGreaterThat($withObject);
......
    // или волшебный
    public function compare($withObject, $operation)
}
$a = new Foo(5);
if ($a->isEmpty()) []
if ($a->isGreaterThat(20)) {}
if ($a->compare(20, Compare::GREATER_THAT))
Я бы остановился на isEmpty и забил на оопэшность
if (!$a->isEmpty() && $a->value() > 20) {}
 

Василий М.

Новичок
у меня в объекте private $data
мне нужно, что бы при любом операторе проверялась переменная $this->data
т.е.

if ($obj) // на деле проверялось count($this->data)

возможно такое в php?
 

Absinthe

жожо

Вурдалак

Продвинутый новичок
if ($obj) // на деле проверялось count($this->data)
Только это с extension'ом тоже вряд ли будет работать, нужно будет писать if ((bool) $obj)

__bool_not() они зря добавили, кстати. Нужно требовать реализации обычного __bool() :)
 

AmdY

Пью пиво
Команда форума
keltanas, там же слово ЗАБИЛ есть, не стремлюсь к оопэшности.
 
Сверху