调用PHP分解并访问第一个元素


Calling PHP explode and access first element?

可能重复:
用于取消引用函数结果的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];