php - “如果值等于这个或这个”的简写方式
问题描述
我搜索但找不到我要找的东西。我有以下代码:
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 部分。
第二部分永远不会执行。为什么会这样,这样做的正确方法是什么?
解决方案
使用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)
}