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

时间:2014-03-21 15:11:14

标签: php keyword

使用list或一个接一个地分配值是否更好(更安全/更具可读性)?

示例:

使用list

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

没有list

$head = '';
$components = explode("\r\n", $data, 2);
$status = $components[0];

if(count($components) === 2) //Or isset($components[1])
    $head = $components[1];

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

1 个答案:

答案 0 :(得分:1)

根据用例list可能会导致问题。然而,传统上定义值不会。 来自http://PHP.net的说明:

  

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

  

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

  

。 。 。如果你使用带索引的数组,你通常期望数组中索引的顺序与你在list()中从左到右写的顺序相同;它不是。它以相反的顺序分配。

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