在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
你不能避免它,除非你有PHP 5.4。 5.4將允許你做'$ user = User :: findByEmail($ _ SESSION ['email'])[0];' – 2012-07-17 18:29:30
'array_shift(User :: findByEmail($ _ SESSION ['email']))''會抱怨說它沒有獲得數組引用。 – 2012-07-17 18:30:48
兩個get()版本只有在findByEmail返回一個對象的時候纔會起作用。 – 2012-07-17 18:35:06