PHP7 only. It allows to cast an object to boolean by implementing new internal interface Boolable
class Container implements Boolable {
public $data = [];
public function __toBoolean()
{
return count($this->data) > 0;
}
};
$obj = new Container();
var_dump((bool) $obj);
echo $obj ? "Not empty!\n" : "Empty!\n";
$obj->data = [1];
var_dump((bool) $obj);
echo $obj ? "Not Empty!\n" : "Empty!\n";bool(false)
Empty!
bool(true)
Not empty!