为了账号安全,请及时绑定邮箱和手机立即绑定

解引用函数结果的PHP语法

解引用函数结果的PHP语法

PHP
慕田峪7331174 2019-06-18 13:14:56
解引用函数结果的PHP语法背景在我经常使用的所有其他编程语言中,在不声明一个新变量来保存函数结果的情况下,对函数的返回值进行操作是很简单的。然而,在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中这样做吗?
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

这是具体的数组取消引用,它目前在php5.3中是不支持的,但是在下一个版本5.4中应该是可能的。另一方面,在当前php版本中,对象取消引用是可能的。我也期待这个功能!


查看完整回答
反对 回复 2019-06-18
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

PHP无法访问函数的数组结果。有些人称这是一个问题,有些人只是接受这是如何设计语言。因此,PHP让您创建不必要的变量来提取所需的数据。

所以你得这么做。

$var = foobar();print($var[0]);


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 425 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信