我正在尝试进行如下查询:
如果$_GET['page'] == 'items'
和$_GET['action'] == 'new' OR 'edit'
这就是我所拥有的:
if (isset($_GET['page']) && $_GET['page'] == 'items') {
if (isset($_GET['action']) && $_GET['action'] == 'new' || isset($_GET['action']) && $_GET['action'] == 'edit') {
// This is what Im looking for
}
}
这是否正确,这是进行此查询的最简单方法吗?
答案 0 :(得分:3)
你也可以这样做:
if (isset($_GET['page']) && $_GET['page'] == 'items') {
if (isset($_GET['action']) && ($_GET['action'] == 'new' || $_GET['action'] == 'edit')) {
}
}
答案 1 :(得分:2)
你的方式完全没问题,虽然我几乎想以下面的方式去做。我建议这个的唯一原因是你的代码要求设置动作和页面。如果未设置操作,则无法检查页面是否为==' items'。
if(isset($_GET['page']) && isset($_GET['action'])) {
if($_GET['page'] == 'items' && ($_GET['action'] == 'new' || $_GET['action'] == 'edit')) {
//do code here
}
}
答案 2 :(得分:1)
您也可以尝试in_array
:
if (isset($_GET['page']) && $_GET['page'] == 'items')
{
if ( !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'new', 'edit' ) )
{
// This is what Im looking for
}
}
答案 3 :(得分:0)
这是可能的解决方案之一
if ( @$_GET['page'] == 'items' && in_array(@$_GET['action'], array('new','edit')))
答案 4 :(得分:0)
一切都很好,但你也可以使用功能:
function paramIs($param, $values) {
$result = false;
foreach ((array)$values as $value) {
$result = $result || isset($_GET[$param]) && $_GET[$param] == $value;
}
return $result;
}
用法:
if (paramIs('page', 'items') && paramIs('action', array('new', 'edit')))
{
// your code here
}
它将减少代码中的重复次数并将逻辑封装在一个地方