谁能解释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/

10-11 20:21