if语句表达式中的php数组取消引用[重复]

Posted

技术标签:

【中文标题】if语句表达式中的php数组取消引用[重复]【英文标题】:php array dereference in if statement expression [duplicate] 【发布时间】:2016-07-26 00:41:14 【问题描述】:

为什么我需要在 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_birth1 != "00" && $date_birth2 != "00") 
    $monthName = date('F', mktime(0, 0, 0, $date_birth[1], 10));
    echo "$monthName $date_birth[2]";

【问题讨论】:

两者似乎都可以工作sandbox.onlinephpfunctions.com/code/…,第一个版本是“正确的”版本。 【参考方案1】:

两个版本完全相同,as shown here。

另外,php manual page on arrays 声明:

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

【讨论】:

以上是关于if语句表达式中的php数组取消引用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP:使用 if 语句从数组中取消设置

为啥我不能使用正则表达式来评估 if...else 语句 [重复]

将多个正则表达式匹配之一分配给变量作为 Perl 单行(取消引用数组?)

PHP正则表达式 - 替换一个反向引用[重复]

如何取消引用这个 2D 动态数组?

求一些C语言if嵌套语句算法题