PHP对Object方法返回的Array元素的内联访问


PHP inline access to Array elements returned by an Object Method

假设我们有一个对象$teams(一个关联数组),它包含一个提供方法getMembers()的对象,该方法返回一个数组,如下所示:

$membersArray = $teams['blueteam']->getMembers();

如果我想访问个人会员,我可以按如下方式访问:

$membersArray[1];

为什么我不能按如下方式执行联机访问,在PHP中有合适的方法吗?

$membersArray = $teams['blueteam']->getMembers()[1];

在PHP 5.4.0:中添加了对此的支持

$membersArray = $teams['blueteam']->getMembers()[1];

与其尝试这样访问它,为什么不制作一个名为getMember()的替代方法,接受数组索引的参数呢。例如:

function getMember( $index )
{
    return $this->members[$index];
}

这使您的代码更加自文档化,因为它指示getMembers将返回一个成员数组,而getMember()将只返回一个数组元素。