У меня есть функция, которая проверяет, является ли пользователь имеет право привилегии внутри репертуаром, и если пользователь делает, я хотел бы, чтобы установить новую переменную: getprivileges = true
Используйте условие, чтобы установить переменную в True
<?php
$directory = $_SESSION['cwd']; // current directory
$user = $_SESSION['simple_auth']['username']; // get username
$repository = gatorconf::get('repository'); // get base repertory of the file manager
$userdir = $repository.DS.'user'.DS.$user; // user's repertory
function scanDirectory($userdir = '', $directory){
$folders = glob($userdir . '/*' , GLOB_ONLYDIR);
foreach($folders as $folder){
if (($folder == $directory && gator::checkPermissions('r')) || (gator::checkPermissions('ru')) || ($userdir == $directory && gator::checkPermissions('r'))) {
$getprivileges = true;
break;
}
scanDirectory($folder, $directory);
}
}
scanDirectory($userdir, $directory);
?>
<?php if ($getprivileges == true): ?>
<p>Permissions granted.<p>
<?php endif; ?>
Я считаю, что funtion return
- это то, что я ищу, но я действительно не знаю, как его использовать. Последняя часть кода - всего лишь пример того, что я намерен делать с моей переменной.
Я добавляю, что до сих пор моя переменная $ getprivileges не определена где-либо еще в моем коде, поэтому, возможно, мне нужно сначала присвоить ее значение по умолчанию?
Может ли кто-нибудь дать мне несколько объяснений, как я могу это сделать?
спасибо
Решение Обновление от комментариев:
<?php
$directory = $_SESSION['cwd']; // current directory
$user = $_SESSION['simple_auth']['username']; // get username
$repository = gatorconf::get('repository'); // get base repertory of the file manager
$userdir = $repository.DS.'user'.DS.$user; // user's repertory
$getprivileges = scanDirectory($userdir, $directory);
function scanDirectory($userdir = '', $directory){
$folders = glob($userdir . '/*' , GLOB_ONLYDIR);
foreach($folders as $folder){
if (($folder == $directory && gator::checkPermissions('r')) || (gator::checkPermissions('ru')) || ($userdir == $directory && gator::checkPermissions('r'))) {
return true;
break;
}
scanDirectory($folder, $directory);
}
}
scanDirectory($userdir, $directory);
?>
<?php if ($getprivileges == true): ?>
<p>Permissions granted.<p>
<?php endif; ?>
Для начала, '$ getprivileges' находится вне области видимости. – ScarletMerlin
'return true;' или в конце 'return false;' then call '$ getprivileges = scanDirectory ($ userdir, $ directory);' – AbraCadaver
Установите 'scanDirectory ($ userdir, $ directory);' переменной. Затем верните функцию true или false. Затем проверьте эту переменную (или просто вызов функции). Также следует посмотреть http://php.net/manual/en/language.variables.scope.php. Обратите внимание на локальные и глобальные области. – chris85