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 に答える