-4

是否可以通过这样的操作设置变量值$_GET['var']

if( $foo = isset($_GET['foo']) ) // Or something close to this. 
I.e if $_GET['foo'] is set assign it's value then and there

而不是像我现在做的那样

if( isset($_GET['foo']) )
$foo = $_GET['foo'];

当它只有一两个时这没关系,但就像我一样,当你有 10 多个 $_GET 时,它会变得丑陋。

4

3 回答 3

1

尝试

$foo = !empty($_GET['foo']) ? $_GET['foo'] : null;
于 2013-11-05T13:30:12.107 回答
1

用户三元运算符

 $foo = isset($_GET['foo']) ? $_GET['foo'] : "";
于 2013-11-05T13:29:43.420 回答
0

不,这是不可能的。您可以使用三元语句来速记,但这并没有那么笨拙。

您可以做的最好的事情可能是编写如下函数:

function extractFromGet(array $keys) {
    $ret = []; // empty array

    foreach ($keys as $key) {
        $ret[$key] = isset($_GET[$key]) ? $_GET[$key] : null;
    }

    return $ret;
}

然后,您可以按如下方式调用它:

list ($name, $email, $telephone, $address) = extractFromGet(
    ['name', 'email', 'telephone', 'address']
);
于 2013-11-05T13:34:30.203 回答