背景
在我经常使用的所有其他编程语言中,对函数的返回值进行操作很简单,而无需声明新变量来保存函数结果。
然而,在 PHP 中,这似乎并不那么简单:
示例1(函数结果是一个数组)
<?php
function foobar(){
return preg_split('/\s+/', 'zero one two three four five');
}
// can php say "zero"?
/// print( foobar()[0] ); /// <-- nope
/// print( &foobar()[0] ); /// <-- nope
/// print( &foobar()->[0] ); /// <-- nope
/// print( "${foobar()}[0]" ); /// <-- nope
?>
示例2(函数结果是一个对象)
<?php
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; // <- nope (parse error)
// print zoobar()->{0}; // <- nope
// print zoobar()->{'0'}; // <- nope
// $vtemp = zoobar(); // does using a variable help?
// print $vtemp->{0}; // <- nope
PHP 无法访问函数的数组结果。有些人称这是一个问题,有些人则认为这是语言的设计方式。所以 PHP 让你创建不必要的变量只是为了提取你需要的数据。
所以你需要做。
$var = foobar();
print($var[0]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)