2016-04-05 2 views
1

Зачем мне нужно индексирование массива с помощью фигурных скобок внутри выражения if if? Почему следующие незаконные?php array dereference in if выражение выражения

$birthday = "1990-01-18"; 
$date_birth = explode("-", $birthday); 
if ($date_birth[1] != "00" && $date_birth[2] != "00") { 
    $monthName = date('F', mktime(0, 0, 0, $date_birth[1], 10)); 
    echo "$monthName $date_birth[2]"; 
} 

Однако следующие работы: мелкие

$birthday = "1990-01-18"; 
$date_birth = explode("-", $birthday); 
if ($date_birth{1} != "00" && $date_birth{2} != "00") { 
    $monthName = date('F', mktime(0, 0, 0, $date_birth[1], 10)); 
    echo "$monthName $date_birth[2]"; 
} 
+0

Оба, похоже, работают http://sandbox.onlinephpfunctions.com/code/7228bf53485ff759fa17d61ca900768d74a9a162, а первая версия - «правильная». –

ответ

1

Две версии точно эквивалентны, as shown here.

Также php manual page on arrays говорится, что:

Оба квадратные и фигурные скобки могут быть использованы как взаимозаменяемые для доступа к элементам массива (например, $array[42] и $array{42} оба делают то же самое [...])