
При помощи
После вызова
Сравните: https://3v4l.org/LL8E9 и https://3v4l.org/jni5Y.
Generator::valid()
можно проверить генератор на пустоту, не обходя его целиком.После вызова
$generator->valid()
функция генератора начинает выполнение и доходит либо до первого yield (тогда valid
возвращает true
), либо до конца (valid
возвращает false
). Интересно, что в первом случае на генераторе можно вызвать rewind
без каких-либо последствий, так как обход ещё не начался. Во втором случае генератор закрывается и обойти его уже нельзя.Сравните: https://3v4l.org/LL8E9 и https://3v4l.org/jni5Y.