- array_pop: documentation ( source)
<?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;
}