PHP 陣列作為列表使用時應當遵循的規範

心智極客發表於2020-02-03

PHP 的陣列可以作為列表使用,在使用時,應當遵循以下規範。

列表中的值的型別應當相同

$goodList = [
    'a',
    'b',
];

$badList = [
    'a',
    1,
];

忽略索引

// 好
foreach ($list as $element) {
}

// 不好:不需要暴露索引
foreach ($list as $index => $element) {
}

// 不好:不需要用到索引
for ($i = 0; $i < count($list); $i++) {
}

不要刪除列表,應當使用過濾器來得到一個新的列表

// 不好
$list = [1, 2, 3];
unset($list[1]);

在使用過濾器時,不應當根據索引來篩選

// 好
array_filter(
    $list, 
    function (string $element): bool { 
        return strlen($element) > 2; 
    }
);

// 不好:使用了索引
array_filter(
    $list, 
    function (int $index): bool { 
        return $index > 3;
    },
    ARRAY_FILTER_USE_KEY
);

// 不好:同時使用了索引和值
array_filter(
    $list, 
    function (string $element, int $index): bool { 
        return $index > 3 || $element === 'Include';
    },
    ARRAY_FILTER_USE_BOTH
);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

終身程式設計者交流 QQ 群 1021204145

相關文章