无变量数组索引赋值

时间:2014-08-24 13:02:46

标签: php arrays syntax

我最近写了这段代码:

// $day =  1..31
$ends = ['th', 'st', 'nd', 'rd'];
$day .= ($day%10 < 4 ? $ends[$day%10] : 'th'); 

为什么我不能写:(?)

$day .= ($day%10 < 4 ? ['th', 'st', 'nd', 'rd'][$day%10] : 'th');

是否可以使用不在变量中的数组?

修改 是否可以在PHP 5.5中使用?

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

$ends = ['th', 'st', 'nd', 'rd'];

应该是:

$ends = Array ('th', 'st', 'nd', 'rd');

您的代码根本没有运行。在执行消息

之前失败了

Parse error: syntax error, unexpected '[' in Your Code

您可能没有在PHP安装中打开错误,因此您不知道这一点。你不能像在Javascript中那样在PHP中定义数组。完成上述更改后,您的代码运行正常。

你的算法似乎也能正常工作,不过我没有为每一个从1到31的数字测试它。

P.S。你不能这样做:

$day .= ($day%10 < 4 ? Array ('th', 'st', 'nd', 'rd')[$day%4] : 'th');

你应该感到高兴,因为它看起来很难看。 :)