一个变量我有检查,如果用户有一个剧目中的权利的特权,如果用户确实,我想它设定新的变量的函数: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; ?>
我相信功能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;'或在最后'返回false;'然后调用'$ getprivileges = scanDirectory($ userdir,$ directory);' – AbraCadaver
将'scanDirectory($ userdir,$ directory);'设置为一个变量。然后让函数返回true或false。然后检查该变量(或者只是函数调用)。也应该看看http://php.net/manual/en/language.variables.scope.php。注意本地和全局范围。 – chris85