Php 需要语法帮助吗

Php 需要语法帮助吗,php,object,syntax,Php,Object,Syntax,我正在寻找直接从对象的方法访问数组值的类型 例如: 使用此语法,没有问题: $myArray = $myObject->getArray(); print_r($myArray[0]) 但是为了减少源代码中的行数,如何使用该方法直接获取元素 我这么做了,但这是不对的: $myArray = $myObject->getArray()[0]; 以下内容仅适用于本应更高版本 $myArray = $myObject->getArray()[0]; 不幸的是,没有比PHP5.

我正在寻找直接从对象的方法访问数组值的类型

例如:

使用此语法,没有问题:

$myArray = $myObject->getArray();

print_r($myArray[0])
但是为了减少源代码中的行数,如何使用该方法直接获取元素

我这么做了,但这是不对的:

$myArray = $myObject->getArray()[0];

以下内容仅适用于本应更高版本

$myArray = $myObject->getArray()[0];
不幸的是,没有比PHP5.4更快的方法

请参阅以获得一个好的替代方案。

如果您使用的是php 5.4(支持数组解引用),则可以执行第二个选项:

$myArray = $myObject->getArray()[0];
如果您使用的是PHP<5.4,则可以在类(对象是其实例)中“修复”它:

这是不可能的

认真回答: 遗憾的是,这是不可能的。您可以编写一个非常难看的包装,如下所示:

function getValue($arr, $index)
{
    return $arr[$index];
}

$myArray = getValue($myObject->getArray(), 0);
但这会降低代码的可读性

最后阅读关于PHP5.4的其他答案

对于PHP5.3-:

$myArray = current($myObject->getArray());

但是为了减少源代码中的行数,如何使用该方法直接获取元素


尽管在PHP5.4中使用您演示的语法可以实现这一点,但我不得不问,您为什么要这样做?在5.3中有一些方法可以在一行程序中实现,但我认为没有必要这样做。行数肯定不如代码的可读性有趣?

为什么要减少源代码中的行数?只是想知道是否有可能做到这一点你是对的,但这只是为了我自己的文化(以及提高我对OOP的理解)@bahamut100在OO中没有规定所有内容都应该在一条线上。
$myArray = current($myObject->getArray());
list($myArray) = $myObject->getArray();