我最近写了这段代码:
// $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中使用?
答案 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');
你应该感到高兴,因为它看起来很难看。 :)