PHP如果变量肯定是值或值

时间:2013-09-22 07:20:46

标签: php string variables if-statement

我想快速检查用户是否有权查看该页面,因此我有一个函数,它只是在调用时返回用户访问级别并将其转换为变量但想知道如何编写if声明......

这是我到目前为止所做的:

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

    echo "You have Access";

} else {

    echo "No access for you!";

}

有人能帮忙吗?

3 个答案:

答案 0 :(得分:6)

您需要再次测试$uac_check的值。

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

orand这样的布尔运算符需要在它们的两边都有一个布尔值。当你有一个像$ uac_check ==“Owner”这样的表达式时,它会计算为true或false值,也称为“boolean”值。你在另一边有$uac_check。当将其转换为布尔值时,大多数变量将评估为true,除非它们为空,null或0.这可能会为您提供您不期望的结果。

请注意,我将OR运算符重写为or。两者都有效,||也是如此。

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

答案 1 :(得分:4)

我想你想要ternary operator

$access = ($uac_check == "Owner" || $uac_check == "Admin") ? 'You have Access' : 'No access for you!';
echo $access;

答案 2 :(得分:0)

像这样的东西

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

    echo "You have Access";

} else {

    echo "No access for you!";

}