X

PHP и запятая при объявлении массива

Решил потестить разницу, между:

$arr = Array( 'a', 'b', 'c' );

и

$arr = Array( 'a', 'b', 'c', );

получил вполне ожидаемый результат: разницы нет, во втором случае, последний элемент не будет создан 🙂 Подробности теста под катом.

В мануале написано: PHP Arrays

The comma after the last array element is optional and can be omitted. This is usually done for single-line arrays, i.e. array(1, 2) is preferred over array(1, 2, ). For multi-line arrays on the other hand the trailing comma is commonly used, as it allows easier addition of new elements at the end.

Но, я все же решил проверить и написал такой примерчик:

<?php

    $arr_a = Array('a','b','c');
    $arr_b = Array('a','b','c',);

    echo 'Array A:<br />';
    var_dump($arr_a);
    echo '<br />';
    echo 'Array B:<br />';
    var_dump($arr_b);

    echo '<hr />';

    echo 'Array A, count:'.count($arr_a);
    echo '<br />';
    echo 'Array B, count:'.count($arr_b);

    echo '<hr />';

    echo 'Array A:<br />';
    foreach ($arr_a as $k=>$a) echo $k.'. '.$a.'<br />';
    echo '<br />';
    echo 'Array B:<br />';
    foreach ($arr_b as $k=>$b) echo $k.'. '.$b.'<br />';

    echo '<hr />';

    echo 'Array A == Array B : '.($arr_a==$arr_b ? 'true':'false').'<br />';
    echo 'Array A === Array B : '.($arr_a===$arr_b ? 'true':'false').'<br />';

Результат:

Array A:
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
Array B:
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } 
---------------------------------------
Array A, count:3
Array B, count:3
---------------------------------------
Array A:
0. a
1. b
2. c

Array B:
0. a
1. b
2. c
---------------------------------------
Array A == Array B : true
Array A === Array B : true

Как видим, мануал не обманул и поэтому можно смело использовать оба вида записей.

Категории: PHP