我有一个数组,包含我使用extract()函数设置EXTR_PREFIX_ALL标志创建局部变量的数组。之后,我在extract()创建的新前缀变量上调用了compact(),但是使用print_r()显示从compact()创建的数组给出了一个空数组()。示例代码如下:
i
我使用的是PHP 5.6版。 我在这里做错了什么?
答案 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)