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

EOB*_*EOB 25 php string explode

可能重复:
用于解除引用功能结果的PHP语法

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

$last = explode("#", "1234#5678")[1]
Run Code Online (Sandbox Code Playgroud)

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

Fel*_*ing 33

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

list($first, $last) = explode("#", "1234#5678");
Run Code Online (Sandbox Code Playgroud)

UPDATE

自PHP 5.4(2012年3月1日发布)以来,它支持阵列解除引用.

  • 如果你在字符串中有很多值,那么你可以使用$ last = end(explode('#',$ string)); (3认同)

Ale*_*s G 13

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

$arr = explode("#", "1234#5678");
$last = $arr[1];
Run Code Online (Sandbox Code Playgroud)

  • 哇,那太烂了:D ...好的,我现在知道了。 (2认同)

rag*_*fin 7

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

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

indx数组中您想要的索引在哪里,在您的示例中它是1.


Ala*_*air 5

你不能这样做:

explode("#", "1234#5678")[1]
Run Code Online (Sandbox Code Playgroud)

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

这是怎么做的:

 $last = explode('#', '1234#5678');
 $last = $last[1];
Run Code Online (Sandbox Code Playgroud)