0

我有以下代码:

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

4

1 回答 1

2

$perm应该是一个字符串,而在您的示例中它是一个数组。fnmatch在这种情况下将无法正常工作,您还应该看到关于此的 PHP 警告。

此外,论点的顺序似乎颠倒了。此测试按预期工作:

var_dump(fnmatch('*', 'acl.adduser'));
于 2013-08-19T17:42:30.587 回答