Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 直接显示方法返回的数组的值_Php_Oop - Fatal编程技术网

Php 直接显示方法返回的数组的值

Php 直接显示方法返回的数组的值,php,oop,Php,Oop,是否可以在一行中调用返回数组()的方法并直接获取该数组的值 例如,而不是: $response = $var->getResponse()->getResponseInfo(); $http_code = $response['http_code']; echo $http_code; 这样做: echo $var->getResponse()->getResponseInfo()['http_code']; 这个例子不起作用,我得到一个语法错误。如果您使用>=PHP

是否可以在一行中调用返回数组()的方法并直接获取该数组的值

例如,而不是:

$response = $var->getResponse()->getResponseInfo();
$http_code = $response['http_code'];
echo $http_code;
这样做:

echo $var->getResponse()->getResponseInfo()['http_code'];

这个例子不起作用,我得到一个语法错误。

如果您使用>=PHP5.4,您可以


否则,您将需要使用一个新变量。

您可以做的是将变量直接传递给您的函数。你的函数应该是这样的:如果一个变量名被传递给它,它应该是该变量的值,否则它应该是一个包含所有变量值的数组

您可以这样做:

<?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;
   }
}
?>


希望有帮助。

语言本身不支持数组的这种功能

如果您可以更改什么
getResponseInfo()
返回:

您可以创建简单的类,该类将数组作为构造函数参数。然后定义哪个将只是从实例数组中提取键

function __get($key)
{
  return @content[$key]
}
那你就能做到了

echo $var->getResponse()->getResponseInfo()->http_code;
// or
echo $var->getResponse()->getResponseInfo()->$keyWhichIWant;

我写的只是建议。真正的
\uu get
方法应该检查是否存在,因此应该是正确的,尽管我不确定是否调用“两个”方法$var->getResponse()->getResponseInfo。。理想情况下,它们不应该分开吗?我问了同样的问题,它作为以下内容的副本关闭:(