3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace itertools; function filter(\Traversable $iterator, callable $callback = null) { foreach ($iterator as $key => $val) { if (null !== $callback and $callback($val, $key)) { (yield $key => $val); } else if ($val) { (yield $key => $val); } } } $a = new \ArrayObject(["foo", "bar", 0, "baz"]); foreach (filter($a) as $val) { print_r($val); }

preferences:
51.95 ms | 402 KiB | 5 Q