2013-03-07 50 views
1

我觉得这个问题很愚蠢,因为它看起来很基本,但它真的让我感到困扰。没有创建变量返回数组元素

我有一个方法返回一个数组与单个元素。我只是希望它返回未包装在数组中的元素。我试过这个。

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

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

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

我无法弄清楚....

回答

2

使用reset()

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

编辑:复位()可能优于目前的(),因为它也确保了内部指针复位,尽管它没有做太大的区别,如果数组只包含一个元素。

+0

这很烦人,这需要一个解决方法......至少他们在5.4中修复了它 – 2013-03-08 01:13:31

1

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

+0

这是如此怪异 – 2013-03-07 05:58:26

+0

我可能是错的。如果你只想要字符串,为什么你想返回一个数组? – Sam 2013-03-07 06:01:12

+0

这是一个库...他们是返回字符串数组的情况 – 2013-03-07 21:37:04

4

你正在尝试做的,被称为array dereferencing,且只能在PHP作为5.4版本(如果您滚动的文档的文章我的几行链接到,你会看到它提到)。