1

我正在尝试进行如下查询:

如果$_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

    }
}

这是正确的,这是进行此查询的最简单方法吗?

4

5 回答 5

3

你也可以这样做:

if (isset($_GET['page']) && $_GET['page'] == 'items') {
    if (isset($_GET['action']) && ($_GET['action'] == 'new' || $_GET['action'] == 'edit')) {

    }
}
于 2012-06-25T14:02:56.847 回答
2

您的方式非常好,尽管我几乎很想按照以下方式进行操作。我建议这样做的唯一原因是您的代码需要设置操作和页面。如果未设置操作,则检查页面是否为 == 'items' 没有多大意义。

if(isset($_GET['page']) && isset($_GET['action'])) {
    if($_GET['page'] == 'items' && ($_GET['action'] == 'new' || $_GET['action'] == 'edit')) {
        //do code here
     }
}
于 2012-06-25T14:05:58.977 回答
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
    }
}
于 2012-06-25T14:04:17.227 回答
0

这是可能的解决方案之一

if ( @$_GET['page'] == 'items' && in_array(@$_GET['action'], array('new','edit')))
于 2012-06-25T14:08:33.677 回答
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
}

它将减少代码中的重复次数并将逻辑封装在一个地方

于 2012-06-25T14:21:32.560 回答