提取PHP的正确部分会在一行中爆炸

时间:2011-09-16 10:15:02

标签: php

  

可能重复:
  PHP syntax for dereferencing function result

这就是我的意思。目前我必须:

$str = "foo-bar";
$foo = explode("-",$str);
$foo = $foo[0];

我想做的是:

$str = "foo-bar";
$foo = explode("-",$str)[0];

但这是一个语法错误!还有另一种方法可以在一条线上完成吗?

编辑:只想表明我也希望能够做到

$str = "foo-bar-baz";
$bar = explode("-",$str)[1];

以及。

4 个答案:

答案 0 :(得分:5)

list($foo) = explode('-', $str);

答案 1 :(得分:4)

或者你可以这样做:

$foo = array_shift(explode("-", $str));

[编辑]由于问题已经改变,现在这是一个非常脏的方法:

list(,$foo) = explode("-", $str); // Add as many commas as needed to get the proper index

答案 2 :(得分:0)

另一种选择:

$foo = current(explode("-", $str));

答案 3 :(得分:0)

$foo = explode("-",$str) and $foo = $foo[0];

但是说真的:这没有简写符号。你可以在一条线上以几种不同的方式做到这一点,但没有一条像你已经拥有的两线解决方案那样具有描述性和简洁性。