if语句表达式中的php数组解引用

if语句表达式中的php数组解引用,php,arrays,brackets,curly-braces,Php,Arrays,Brackets,Curly Braces,为什么我需要在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 "$month

为什么我需要在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]";
}

这两个版本完全相同

此外,缔约国还表示:

方括号和大括号都可以互换使用来访问数组元素(例如,
$array[42]
$array{42}
都可以做同样的事情[…])

这两种方法似乎都有效,而第一个版本是“合适的”。