PHP如果变量肯定是值或值

Aar*_*ton 0 php string variables if-statement

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

这是我到目前为止:

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

    echo "You have Access";

} else {

    echo "No access for you!";

}
Run Code Online (Sandbox Code Playgroud)

有人能帮忙吗?

Sur*_*ams 6

你需要$uac_check再次测试它的值.

if($uac_check == "Owner" or $uac_check == "Admin") {
Run Code Online (Sandbox Code Playgroud)

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

请注意,我重新编写了OR运算符or.两者都有效,也是如此||.

最后一点 - 您可以使测试更具体,以避免PHP中的"误解".PHP对于类型非常松懈,所以它会告诉你"1" == 1并且0 == false是真的,当1个字符和数字1不是同一个东西时,0和false都不相等.你可以通过使用===运算符来避免这样的错误,运算符检查值类型.这可能非常重要,特别是某些函数可以返回0和false,具有两个非常不同的含义.它被称为identical运营商.你可以阅读更多有关在PHP手册比较比较操作页面.