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();