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" 这样的表达式时,它的计算结果为真或假值,也称为“布尔”值。你$uac_check在另一边。大多数变量在转换为布尔值时将评估为 true,除非它们为空、null 或 0。这可能会给您带来意想不到的结果。

请注意,我将运算符重写ORor. 两者都有效,||.

最后一点 - 您可以使测试更具体,以避免 PHP 中的“误解”。PHP 对类型非常松懈,所以当 1 字符和数字 1 不是同一个东西,0 和 false 也不相等时,它会告诉你"1" == 1and是真的。0 == false您可以通过使用===运算符来避免此类错误,该运算符同时检查值类型。这可能非常重要,尤其是对于某些可以返回 0 和 false 具有两种截然不同的含义的函数。它被称为identical运算符。您可以在比较运算符页面上的 PHP 手册中阅读有关比较的更多信息。

于 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 回答