0

ifユーザーがページを表示するアクセス権を持っているかどうかを簡単に確認したいので、呼び出されたときにユーザーのアクセスレベルを単純に返し、それを変数にする関数がありますが、ステートメントの書き方を知りたいです。 ..

これは私がこれまでに持っているものです:

if($uac_check == "Owner" OR "Admin") {

    echo "You have Access";

} else {

    echo "No access for you!";

}

誰か助けてください。

4

3 に答える 3

9

$uac_checkの値を再度テストする必要があります。

if($uac_check == "Owner" or $uac_check == "Admin") {

ブール演算子は、両側でブール値が好きorで必要です。and$uac_check == "Owner" のような式がある場合、それは true または false の値 ("boolean" 値とも呼ばれます) に評価されます。あなたは$uac_check反対側にいます。ほとんどの変数は、空、null、または 0 でない限り、ブール値としてキャストすると true と評価されます。これにより、予期しない結果が得られる可能性があります。

OR演算子を として書き直したことに注意してくださいor。どちらも有効です||

最後に、PHP での「誤解」を避けるために、テストをより具体的にすることができます。PHP は型に関して非常に緩いので、1 文字と数字の 1 が同じでなく、0 と false が等しくない場合、"1" == 1andが true であることがわかります。値と型の両方をチェック0 == falseする演算子を使用すると、このような間違いを避けることができます。これは、特に 0 と false を 2 つの非常に異なる意味で返す可能性がある特定の関数では、非常に重要です。オペレーターといいます。PHP マニュアルの比較演算子ページで比較の詳細を読むことができます。===identical

于 2013-09-22T07:21:54.317 に答える
4

三項演算子が必要だと思います。

$access = ($uac_check == "Owner" || $uac_check == "Admin") ? 'You have Access' : 'No access for you!';
echo $access;
于 2013-09-22T07:23:10.247 に答える
0

このようなもの

if($uac_check == "Owner" || $uac_check =="Admin") {

    echo "You have Access";

} else {

    echo "No access for you!";

}
于 2013-09-22T07:22:48.933 に答える