PHP Compact()函数返回一个空数组

时间:2015-04-26 03:38:31

标签: php arrays

我有一个数组,包含我使用extract()函数设置EXTR_PREFIX_ALL标志创建局部变量的数组。之后,我在extract()创建的新前缀变量上调用了compact(),但是使用print_r()显示从compact()创建的数组给出了一个空数组()。示例代码如下:

i

我使用的是PHP 5.6版。 我在这里做错了什么?

2 个答案:

答案 0 :(得分:8)

在您当前的代码中,您实际上提供了您尝试compact的每个变量的值,而不是变量的名称。它就像一个变量行为。为了使其正常工作,您可以将变量名称提供为字符串或数组形式:

$new_cities = compact(array('new_City1', 'new_City2'));
// or
$new_cities = compact('new_City1', 'new_City2');

以下是manual

的摘录
  

参数

     

varname1

     

compact()采用可变数量的参数。每个参数可以是包含变量名称字符串,也可以是变量名称数组。该数组可以在其中包含其他变量名数组; compact()以递归方式处理它。

答案 1 :(得分:2)

试一试

function __toString(){
    $this->datos();
    return json_encode($this->hs);
}

For more info