导航数组和对象数据

时间:2011-10-04 06:00:25

标签: php arrays object

我有一个具有属性链接的对象。我用getLink()得到它。这个属性实际上是一个数组,所以我得到了第一个元素$link[0],它又是一个对象,所以我得到了属性getHref()。我的总代码看起来像这样。

$link = $obj->getLink();
$link0 = $link[0];
$href = $link0->getHref();

是否有更好的方法来编写此代码,例如1行?像$obj->getLink()->get(0)->getHref()我正在使用PHP 5.3.4

1 个答案:

答案 0 :(得分:3)

current($obj->getLink())->getHref()

但这并不是很优雅。

您的代码应该如下所示:

$links = $obj->getLink();
$href  = $links[0]->getHref();

如果getLink总是返回一个数组,那么它应该被称为getLinks(复数),我希望必须迭代返回值;仅与第一个结果一起工作似乎很奇怪。或者,getLink可以接受参数以返回特定链接,例如:

$href = $obj->getLink(0)->getHref();

PHP不支持直接返回值解除引用,因此对象接口不太适合它所编写的语言,或者您没有按预期使用该对象。