1

可能重复:
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
4

2 回答 2

4

编辑

你想要的解决方案是这样的:

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

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

于 2012-07-17T18:33:36.983 回答
2

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

$user = User::findByEmail($_SESSION['email']);
$user = $user[0];
于 2012-07-17T18:34:47.887 回答