可能重复:
用于取消引用函数结果的PHP语法
我有一个字符串,它看起来像1234#5678。现在我称之为:
$last = explode("#", "1234#5678")[1]
它不起作用,有一些语法错误。。。但是在哪里?我所期望的是$last
中的5678。这在PHP中不起作用吗?
数组取消引用在当前的PHP版本中是不可能的(不幸的是)。但是您可以使用list
[docs]将数组元素直接分配给变量:
list($first, $last) = explode("#", "1234#5678");
更新
自PHP 5.4(2012年3月1日发布)以来,它支持数组取消引用。
PHP很可能被语法弄糊涂了。只需将explode
的结果分配给数组变量,然后对其使用索引:
$arr = explode("#", "1234#5678");
$last = $arr[1];
以下是如何将其归结为一行:
$last = current(array_slice(explode("#", "1234#5678"), indx,1));
其中indx
是数组中所需的索引,在您的示例中为1。
你不能这样做:
explode("#", "1234#5678")[1]
因为explode
是一个函数,而不是一个数组。它当然会返回一个数组,但在PHP中,在将函数设置为数组之前,不能将其视为数组。
这就是如何做到的:
$last = explode('#', '1234#5678');
$last = $last[1];
PHP可能有点暗淡。你可能需要在两条线上做到这一点:
$a = explode("#", "1234#5678");
$last = $a[1];