The constructt $strategy ?: new Recursive() is equivalent to : if $straetgy is not null, use strategy, otherwise new Recursive.

It's a shortcut.

Yes I understood abut custom strategy, but you could do:

```php
if (PHP_VER < 5.5) {  // Not the right syntax
    $this->traversalStrategy = $strategy ?: new RecursiveRoleIteratorStrategy;
} else {
    $this->traversalStrategy = $strategy ?: new GeneratorStrategy()
}
```