Я создаю класс коллекции и хотел бы, чтобы он заменял массивы, которые я использую в настоящее время.
Как создать класс, который может быть преобразован в логическое значение, Итак, класс может быть правдивым или ложным?
Простой тест показывает, что объект пустого класса правдив:
class boolClass {}
$obj = new boolClass();
var_dump( (bool)$obj);
//prints
//bool(true)
Но мне нужно решить, является ли мой класс правдивым или ложным. Есть ли способ указать движку PHP, как преобразовать мой класс в логическое? Как я мог бы сделать с __toString ()?
Справочная информация:
Допустим, я пишу такой класс (это только пример):
class MyCollection implements ArrayAccess, Iterator {
//...
}
В настоящее время я активно использую следующие шаблоны:
$var = array();
if (empty($var)) {
//array is empty, (or there is no array at all)
// I do something here
}
Я бы хотел, чтобы выглядят так:
$var = new MyCollection(array());
, а остальные оставьте без изменений. Но $ var, содержащий MyCollection, всегда правдив, поэтому мне потребуются все условия:
if ($var->isEmpty()) {
//...
}
Но это неприемлемо, так как в моей кодовой базе много мегабайт.
Есть ли здесь решение?