1

重複の可能性:
phpexplodeと配列インデックス

PHP5.3では...

常に配列を返す動的静的メソッドがあります。場合によっては、要素を1つだけ含む配列が返されます。1つのステートメントで、配列の最初の要素を変数に割り当てたいと思います。現時点では、これを行う必要があります。

$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 に答える