我有以下代码:
echo "matching: ".$params['perm']." against: "; var_dump($perm);
if (fnmatch($params['perm'], $perm)) { $x=true; }
$this->code = 200;
return $x;
我问他$perm
是否包含$params['perm']
的开头或是*
在这种情况下,我的输出是:
matching: acl.adduser against: array(1) {
[0]=>
string(1) "*"
}
{"code":200,"data":false}
不应该返回true,因为*
是我的权限,这允许我也拥有acl.adduser
?
答案 0 :(得分:2)
$perm
应该是一个字符串,而在你的例子中它是一个数组。在这种情况下,fnmatch
无法正常工作,您也应该看到有关此问题的PHP警告。
此外,参数的顺序似乎是相反的。此测试按预期工作:
var_dump(fnmatch('*', 'acl.adduser'));