我想输出一个从函数返回的数组键。目前是这样的:
$x = explode('/', 'my/path/home');
echo $x[1];
但是,如果没有变量赋值,我怎么能只输出一行呢?
我正在尝试这个,但它不起作用:
echo explode('/', 'my/path/home')[1];
尚未尝试,但这可能会对您有所帮助:
echo array_slice(explode('/', 'my/path/home'), 1, 1);
此外,如果字符串中没有斜杠,则此代码会爆炸。
如果必须在一行中执行此操作,IMO最好使用list
:
list(, $x) = explode('/', $path);
这可以说比冗长的更好
$x = implode('', array_slice(explode('/', $path), 1, 1));
在这种情况下,你很容易忘记你最初应该做什么。
如果你不确定是否会有第二个元素,你可以防范的问题
list(, $x) = array_pad(explode('/', $path), 2, null);
然而,对于真正的代码,我并不推荐以上任何一种。如果必须的话,使用两个衬垫;它仍然比这些解决方案中的任何一个都更容易阅读。
如果你真的想要一个一行的wathever原因和你的PHP版本<5.4,您可以为此创建一个函数:
function getPath($fullPath) {
$x = explode('/', $fullPath);
return $x[1];
}
//now the one-liner
echo getPath('my/path/home');