3v4l.org

run code in 300+ PHP versions simultaneously
<?php function roleDFSOnePrivilege(Role\RoleInterface $role, Resource\ResourceInterface $resource = null, $privilege = null) { if (null === $privilege) { throw new Exception\RuntimeException('$privilege parameter may not be null'); } $dfs = array( 'visited' => array(), 'stack' => array() ); if (null !== ($result = roleDFSVisitOnePrivilege($role, $resource, $privilege, $dfs))) { return $result; } // This comment is needed due to a strange php-cs-fixer bug while (null !== ($role = array_pop($dfs['stack']))) { if (!isset($dfs['visited'][$role->getRoleId()])) { if (null !== ($result = $roleDFSVisitOnePrivilege($role, $resource, $privilege, $dfs))) { return $result; } } } return null; }

preferences:
37.33 ms | 402 KiB | 5 Q