PHP:如何访问静态函数返回的数组的第一个元素


PHP: How to access the first element of an array returned by a static function

可能重复:
php爆炸和数组索引

在PHP 5.3…中

我有一个动态静态方法,它总是返回一个数组。在某些情况下,它将返回一个只包含一个元素的数组。我想在一条语句中,将数组的第一个元素分配给一个变量。目前我必须这样做:

$user = User::findByEmail($_SESSION['email']);
$user = $user[0];
echo $user;

我想避开。。。

$user = $user[0];

我希望这样的东西能起作用:

$user = User::findByEmail($_SESSION['email'])[0]; // not working

$user = User::findByEmail($_SESSION['email'])->get(0); // not working

$user = User::findByEmail($_SESSION['email']).get(0); // not working

编辑

你想要的解决方案是:

$user = current( User::findByEmail( $_SESSION['email'] ) );

请注意,在函数中使用current()总是返回第一个元素,因为数组从未分配给变量,也没有点。如果函数通过引用返回数组,则情况并非如此。

你不能(在PHP 5.4之前)。这是PHP解析器的限制。您的最佳选择:

$user = User::findByEmail($_SESSION['email']);
$user = $user[0];