在PHP中传递函数括号外的参数

时间:2018-01-11 09:51:53

标签: php parameters

可以在PHP中传递参数 - getallheaders()['X-Requested-With']吗?我意识到getallheaders()会返回所有标题,并且您需要迭代所有标题以检查特定标题,但上述方法有效。不知道为什么。

感谢。

4 个答案:

答案 0 :(得分:1)

这不是参数传递,但getallheaders()函数返回一个设置了X-Requested-With键的数组。

function test() {
    return ['key' => 'value'];
}

echo test()['key'];

答案 1 :(得分:1)

这不是“在括号外传递参数”,即访问函数返回的数组的特定索引。这只是简写:

$headers = getallheaders();
$headers['X-Requested-With'];

这也应该证明“需要迭代所有这些”的陈述是基于错误的假设/理解。

答案 2 :(得分:0)

函数getallheaders()返回一个数组。所以getallheaders()['X-Requested-With']

相同
$headers=getallheaders();
echo $headers['X-Requested-With'];

$headers=getallheaders();
foreach($headers as $key => $header){
    if($key=='X-Requested-With')
        echo $header;
}

所以无论如何你得到一个数组并且你正在打印数组值。

答案 3 :(得分:0)

getallheaders() returns an associative array,所以是的,您可以按照上述方式提取该密钥的值。

当询问是否可以像这样传递参数时,我在想你正在谈论一个函数。是的,如果不需要变量,您可以将参数传递给函数而不声明变量。 I would, however, do a check if the key exists.

$headers = getallheaders();    
if(array_key_exists('X-Requested-With', $headers)) {
    echo func($headers['X-Requested-With']);
}

注意:上面我将getallheaders()放入变量中,因为我将多次使用该函数的结果。