在php中使用列表语言结构是个好习惯吗?


Is it a good practice to use list language construct in php?

使用list或逐个赋值是否更好(更安全/更可读)?

例子:

With list:

$head = '';
if(strpos($data, "'r'n") !== false)
    list($status, $head) = explode("'r'n", $data, 2);
else
    $status = $data;

Without list:

$head = '';
$components = explode("'r'n", $data, 2);
$status = $components[0];
if(count($components) === 2) //Or isset($components[1])
    $head = $components[1];

写这段代码的首选方法是什么?

根据用例list可能最终导致您的问题。然而,按惯例定义这些值是行不通的。http://PHP.net:

list()仅适用于数值数组,并假设数值索引从0开始。

.

list()执行期间修改数组(例如使用list($a, $b) = $b)会导致未定义的行为。

.

. .如果你正在使用带有索引的数组,你通常期望数组中索引的顺序与你在list()中从左到右写的顺序相同;事实并非如此。它的赋值顺序是相反的

显然,使用list可能会导致一些意想不到的行为,这绝对不是最常见的方法。这使得list的可读性很差,因为它是非常规的。据我所知,使用list没有任何好处,我认为它更慢。