解引用函数结果的PHP语法
背景
在我经常使用的所有其他编程语言中,在不声明一个新变量来保存函数结果的情况下,对函数的返回值进行操作是很简单的。
然而,在PHP中,这似乎并不是那么简单:
示例1(函数结果是数组)
function foobar(){
return preg_split('/\s+/', 'zero one two three four five');
}
// can php say "zero"?
/// print( foobar()[0] ); ///
/// print( &foobar()[0] ); ///
/// print( &foobar()->[0] ); ///
/// print( "${foobar()}[0]" ); ///
?>
示例2(函数结果是一个对象)
function zoobar(){
// NOTE: casting (object) Array() has other problems in PHP
// see e.g., http://stackoverflow.com/questions/1869812
$vout = (object) Array('0'=>'zero','fname'=>'homer','lname'=>'simpson',);
return $vout;
}
// can php say "zero"?
// print zoobar()->0; //
// print zoobar()->{0}; //
// print zoobar()->{'0'}; //
// $vtemp = zoobar(); // does using a variable help?
// print $vtemp->{0}; //
有人能建议如何在PHP中这样做吗?