我觉得有一些方法可以用快捷方式来做到这一点:
$date_array = explode("-", $date);
$day = $date_array[2];
类似的东西:
$day = explode("-", $date)[2];
基本上得到答案并将其设置为什么?
不记得了,但是并没有像.=
串联那样花哨的“=”之类的东西。还有其他类似的快捷方式吗?似乎无法在Google上找到包含所有快捷方式的文章。
我讨厌必须制作一个$date_array
当我真正想要的是$day
时,让我觉得我的代码效率不高。
答案 0 :(得分:5)
list(,,$day) = explode("-", $date);
list()
接受一个数组并将其解析为变量...你可以跳过你不想要的项目,将项目留空,就像我上面所做的那样。应该做你需要的。您尝试的其他类型的语法将无法在php 中工作(至少不是我曾经使用过的版本) - 这更像是JavaScript类型表示法。
万一你感兴趣的话还有另外一个解决你正在尝试的方法(除非它只是一个例子来说明):
/// this will give you the current day based on server time
$day = date('d');
/// this will work from an existing Y-m-d date
$day = date('d', strtotime($date));
现在,将Y-m-d日期字符串转换为时间戳是否比分割字符串并列出其变量更快 - 只有速度测试会告诉(我认为分裂会胜出)。但对我来说,上面的内容更好,因为我不禁想到其他被拆分的数组项目,然后只是遗忘;)
答案 1 :(得分:5)
如new features in PHP 5.4 page所述,您建议的语法(称为函数数组解除引用)现在可以从该版本开始。
$day = explode("-", $date)[2];
然而,这在5.3或之前不起作用。
答案 2 :(得分:0)
在php5.4之后你可以这样做:
$day = explode("-", $date)[2];
在php5.4之前,您可以使用list
。
list(,,$day) = explode("-", $date);