gpt4 book ai didi

取消引用函数结果的 PHP 语法

转载 作者:可可西里 更新时间:2023-11-01 12:39:58 26 4
gpt4 key购买 nike

背景

在我经常使用的所有其他编程语言中,在不声明新变量来保存函数结果的情况下对函数的返回值进行操作很简单。

然而,在 PHP 中,这似乎并不那么简单:

example1(函数结果为数组)

<?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]);

关于取消引用函数结果的 PHP 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com