是否可以在一行中调用返回数组()的方法并直接获取此数组的值?
例如,而不是:
$response = $var->getResponse()->getResponseInfo();
$http_code = $response['http_code'];
echo $http_code;
做这样的事情:
echo $var->getResponse()->getResponseInfo()['http_code'];
此示例不起作用,我收到语法错误。
答案 0 :(得分:4)
如果您使用> = PHP 5.4,则可以。
否则,您需要使用新变量。
答案 1 :(得分:1)
您可以做的是直接传递给您的功能。你的函数应该是这样的,如果一个变量名传递给它,它应该是该变量的值,否则是一个包含所有变量值的数组。
你可以这样做:
<?php
// pass your variable to the function getResponseInfo, for which you want the value.
echo $var->getResponse()->getResponseInfo('http_code');
?>
你的职能:
<?php
// by default, it returns an array of all variables. If a variable name is passed, it returns just that value.
function getResponseInfo( $var=null ) {
// create your array as usual. let's assume it's $result
/*
$result = array( 'http_code'=>200,'http_status'=>'ok','content_length'=>1589 );
*/
if( isset( $var ) && array_key_exists( $var, $result ) ) {
return $result[ $var ];
} else {
return $result;
}
}
?>
希望它有所帮助。
答案 2 :(得分:1)
语言本身不支持数组。
如果您可以更改getResponseInfo()
返回的内容:
您可以创建简单的类,它将数组作为构造函数参数。然后定义magical getter,它只是从实例数组中拉出键
function __get($key)
{
return @content[$key]
}
然后你就可以了
echo $var->getResponse()->getResponseInfo()->http_code;
// or
echo $var->getResponse()->getResponseInfo()->$keyWhichIWant;
我写的只是提案。真正的__get
方法应该检查一下是否存在