将“$ arr = Foo :: bar(); $ v = $ arr [$ i]”组合成一行代码

时间:2010-11-22 04:39:48

标签: php

我遇到了需要制作的特殊情况

$arr = Foo::bar();
$v = $arr[$i]

进入一行代码。 $v = Foo::bar()[$i]无效。

4 个答案:

答案 0 :(得分:2)

尽管我确实认为它是为下一个PHP版本添加的,但这对PHP来说是不可能的。以下是有关该主题的更多信息:

http://schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html

我迫不及待地想要添加它。

答案 1 :(得分:1)

这是怎么回事?你想要什么? = P

$v = Foo::barElement(0);

和...

class Foo
{
    public static function barElement($index) {$t = self::bar(); return $t[$index];}

    public static function bar......
}

答案 2 :(得分:1)

$v = reset(Foo::bar());

答案 3 :(得分:0)

当前版本的PHP尚未实现数组derefencing。你必须等到PHP 5.4或6.0发布。