返回数组元素而不创建变量


Return Array Element without Creating Variable

我觉得问这个问题很愚蠢,因为它看起来很基本,但它真的让我很困扰。

我有一个方法,它返回一个包含单个元素的数组。我只想让它返回没有被包装在数组中的元素。我试过了。

return $f->getValue()[0];

,它给出了一个错误,但如果我把它保存到一个变量,它工作正常

$v = $f->getValue();
return $v[0];

我想不出来....

仅从PHP 5.4开始可用:http://codepad.viper-7.com/VHOW0o

您正在尝试做的事情被称为数组解引用,并且只能在5.4版本的PHP中实现(如果您在我链接到的文档文章中向上滚动几行,您将看到它被提到)。

使用reset()。

<?php return reset( $f->getValue() ); ?>

Edit: reset()可能优于current(),因为它也确保内部指针被重置,尽管如果数组只包含一个元素,它没有太大区别。

据我所知,因为你返回一个数组,你只能得到一个数组。您可以将数组保存到类中的一个变量中(由$f->myArray访问),然后只返回字符串部分。或者另一种选择是执行第二个示例,返回数组并从中检索字符串。

你试过了吗

         <?php
           return array_shift(array_values($array));
         ?>

获取数组的第一个元素