Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Return Type - Fatal编程技术网

返回的类型数组在PHP中不显示内容

返回的类型数组在PHP中不显示内容,php,arrays,return-type,Php,Arrays,Return Type,背景: 创建一个显示世界各国货币汇率的网站 我有一个从XML文档中检索汇率和货币标题的函数: function get_rate(SimpleXMLElement $xml, $x) { $currency['rate'] = $xml->channel->item[$x]->description; preg_match('/([0-9]+\.[0-9]+)/', $currency['rate'], $matches); $rate = $mat

背景:

创建一个显示世界各国货币汇率的网站

我有一个从XML文档中检索汇率和货币标题的函数:

function get_rate(SimpleXMLElement $xml, $x) {

    $currency['rate'] = $xml->channel->item[$x]->description;

    preg_match('/([0-9]+\.[0-9]+)/', $currency['rate'], $matches);
    $rate = $matches[0];

    $title['rate'] = $xml->channel->item[$x]->title;
    $title = explode('/', $title['rate']);
    $title = $title[0];

    return array(
            $currency[0],
            $title[1]
        );

//    echo $rate . ' ' . $title . '<br />';
}

问题是否是因为我在
get\u rate
函数中声明了不同的变量名

当您回显非字符串、非数字类型时,您将只打印出对象类型。这是所有语言的标准行为

它本质上要求从对象中创建一个字符串,对于更复杂的类型,很难理解如何将它们转换为字符串,因此它只输出类型

要获得所需的行为,您需要回显数组中的字符串,并直接引用它们,如下所示:

$rate = get_rate($xml, $x);
echo $rate[0] . ' '. $rate[1];
另外,要查看对象内部的所有内容,还可以使用:

 var_dump(  get_rate($xml, $x));

这不会以最漂亮的方式格式化,但它允许您“查看”您的对象。

使用并查看这是否有助于您找到您拥有的变量。

为什么在每种情况下都要调用两次get\u rate()。@vascowhite是的,两次调用它们是不相关的。
案例15:get\u rate($xml,15)//15欧元var_dump(获取率($xml,$x))
返回
array(2){[0]=>NULL[1]=>NULL}
好的,所以得到的是NULL值。什么是
$x
?我看不出它的定义。正确
$x
是解析为
PHP\u URL\u查询的参数
。e、 g.
x=15
它定义了
标记在XML文档中的位置<代码>'http://themoneyconverter.com/rss-feed/GBP/rss.xml?x=15“get\u rate中的
return
语句错误。它应该是
返回数组($rate,$title)。是的,这里没走多远。将花费更多的时间进行调试。var dump正在返回
array(2){[0]=>NULL[1]=>string(0)“}
$rate = get_rate($xml, $x);
echo $rate[0] . ' '. $rate[1];
 var_dump(  get_rate($xml, $x));