首页 > 解决方案 > “如果值等于这个或这个”的简写方式

问题描述

我搜索但找不到我要找的东西。我有以下代码:

if ( $_SERVER[ "REQUEST_URI" ] === "/post" || $_SERVER[ "REQUEST_URI" ] === "/post/" ) {

    // redirect to "/"

} else {

    // logic to display the post (uri to db query)

}

工作正常,正如预期的那样。我试图将比较缩短为(截断):

...... $_SERVER[ "REQUEST_URI" ] === "/post" || "/post/" .......

老实说,我没想到它会起作用,实际上希望它会抛出一个错误。没有错误,但现在该页面的任何 URI;/post, /post/,/post/my-first-post都执行 if/else 语句的 if 部分。

第二部分永远不会执行。为什么会这样,这样做的正确方法是什么?

标签: phpif-statementconditional-statements

解决方案


使用in_array()你可以缩短你的代码。

$rurl_route_list=['/post', '/post/']

if ( in_array($_SERVER[ "REQUEST_URI" ], $url_route_list)) {

    // redirect to "/"

} else {

    // logic to display the post (uri to db query)

}

推荐阅读