谁能解释PHP的compact()函数接受字符串“具有该名称的变量”而不是实际变量的好处吗?
例如:
$foo = 'foo';
$bar = 'bar';
$compacted = compact('foo', 'bar');
为什么我需要传递变量名的字符串,而不是仅仅传递变量本身和PHP处理将其映射到数组的字符串?像这样:
$compacted = compact($foo, $bar);
最佳答案
因为compact()
函数需要知道变量的名称,因为它将使用它们作为数组键。如果直接传递变量,则compact()
将不知道其名称,并且将没有任何值可用于返回的数组键。
但是,我建议手动构建阵列:
$arr = array(
'foo' => $foo,
'bar' => $bar);
我认为
compact()
已过时,并且会避免在任何新代码中使用它。关于php - 为什么PHP compact()使用字符串而不是实际变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16319729/