Василий М.
Новичок
что бы if($obj) (если объект пустой) было false
также и с логическими операторами
также и с логическими операторами
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))
Тогда уж __invoke и if ($obj()). Хотя это все извращения, я за isEmpty().магический разве что __toString
if ("$obj")
Из коробки нет.Это называется «перегрузка операторов» и в PHP этого нет.
А чё?
Только это с extension'ом тоже вряд ли будет работать, нужно будет писать if ((bool) $obj)if ($obj) // на деле проверялось count($this->data)

Не вижу сдесь ничего не ООПшного. Кроме того, что условие $a->value() > 20 тоже можно было бы в логику isEmpty() перенестиЯ бы остановился на isEmpty и забил на оопэшность
if (!$a->isEmpty() && $a->value() > 20) {}
