调用PHP爆炸并访问第一个元素?

时间:2012-01-11 11:24:29

标签: php string explode

  

可能重复:
  PHP syntax for dereferencing function result

我有一个字符串,看起来像 1234#5678 。现在我称之为:

$last = explode("#", "1234#5678")[1]

它不起作用,有一些语法错误......但在哪里?我期望的是$last中的5678。这不适用于PHP吗?

5 个答案:

答案 0 :(得分:31)

在当前的PHP版本中不可能进行数组解除引用(不幸的是)。但您可以使用list [docs]直接将数组元素分配给变量:

list($first, $last) = explode("#", "1234#5678");

<强>更新

自PHP 5.4(2012年3月1日发布)以来,它支持array dereferencing

答案 1 :(得分:13)

很可能PHP会被语法搞糊涂了。只需将explode的结果分配给数组变量,然后对其使用索引:

$arr = explode("#", "1234#5678");
$last = $arr[1];

答案 2 :(得分:7)

以下是如何将其归结为一行:

$last = current(array_slice(explode("#", "1234#5678"), indx,1));

其中indx是数组中所需的索引,在您的示例中为1。

答案 3 :(得分:5)

你不能这样做:

explode("#", "1234#5678")[1]

因为explode是一个函数,而不是一个数组。它肯定会返回一个数组,但在PHP中,在将函数设置为数组之前,不能将该函数视为数组。

这是怎么做的:

 $last = explode('#', '1234#5678');
 $last = $last[1];

答案 4 :(得分:3)

PHP可能有点暗淡。您可能需要在两行中执行此操作:

$a = explode("#", "1234#5678");
$last = $a[1];