如何在不指定数组变量的情况下访问数组元素?

OBV*_*OBV 0 php

例如:

echo explode('@',$var); //but only echoing element 1 or 2 of the array?
Run Code Online (Sandbox Code Playgroud)

代替:

$variable = explode('@',$var);
echo $variable[0];
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ama*_*ali 7

在支持数组解除引用的PHP版本上,您可以使用以下语法:

echo explode('@', $var)[0];
Run Code Online (Sandbox Code Playgroud)

如果没有,您可以使用list():

list($foo) = explode('@', $var);
Run Code Online (Sandbox Code Playgroud)

上面的语句将在变量中分配爆炸数组的第一个值$foo.


Cob*_*ast 6

从PHP 5.4开始,你可以写:

echo explode('@', $var)[0];
Run Code Online (Sandbox Code Playgroud)

在早期版本的PHP中,您只能通过技巧实现行为:

echo current(explode('@', $var)); // get [0]
echo next(explode('@', $var));    // get [1]
Run Code Online (Sandbox Code Playgroud)

如果没有临时变量,则无法在任意位置检索元素.


这是一个简单的函数,如果你不想每次都使用变量,它可以整理你的代码:

function GetAt($arr, $key = 0)
{
    return $arr[$key];
}
Run Code Online (Sandbox Code Playgroud)

打电话:

echo GetAt(explode('@', $var));    // get [0]
echo GetAt(explode('@', $var), 1); // get [1]
Run Code Online (Sandbox Code Playgroud)

  • 技术上有可能,你可以做`echo current(explode('@',$ var));` (3认同)