Отрицательное количество элементов (PHP)

Сегодня утром с разработчиками обсуждали фрагмент кода, где автор очень уж параноидально подошёл к проверке:
if (count($this->to) <= 0) {
	$this->validation_errors[] = "Неверный отправитель";
}
Проверять возвращает ли функция count значение меньшее нуля действительно странно, но я вдруг подумал — а можно ли в ПХП в припципе заставить эту функцию вернуть такое значение?

Дело в том, что функцию count можно использовать не только с примитивными типами (чаще всего её используют с массивами), но и с объектами, которые реализуют интерфейс Countable.

Оказалось вполне нормально работает:
$var = new class implements \Countable {
	public function count()
	{
		return -1;
	}
}

var_dump(count($var)); // выведет int(-1)
Выше код написан в синтаксисе ПХП7, который выйдет сегодня, но его можно переписать и на «пятёрку» — надо только дать имя классу.
3 декабря 2015 09:12

Сергей Морозов (morozov.livejournal.com)
4 декабря 2015, 05:14

Я бы перефразировал это условиее в не менее параноидальном, но более читаемом виде: if (count($this->to) < 1) – читается как «должен быть хотя бы один адресат». Кстати, у вас отправитель с адресатом, кажется, попутаны :-).

bolknote.ru (bolknote.ru)
4 декабря 2015, 06:44, ответ предназначен Сергей Морозов (morozov.livejournal.com):

Кстати, у вас отправитель с адресатом, кажется, попутаны :-).
Я не помню точно, а смотреть мне не хочется, но это может быть разбор чего-то входящего (эл. письма, например).

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)