我有一个具有属性链接的对象。我用getLink()
得到它。这个属性实际上是一个数组,所以我得到了第一个元素$link[0]
,它又是一个对象,所以我得到了属性getHref()
。我的总代码看起来像这样。
$link = $obj->getLink();
$link0 = $link[0];
$href = $link0->getHref();
是否有更好的方法来编写此代码,例如1行?像$obj->getLink()->get(0)->getHref()
我正在使用PHP 5.3.4
答案 0 :(得分:3)
current($obj->getLink())->getHref()
但这并不是很优雅。
您的代码应该如下所示:
$links = $obj->getLink();
$href = $links[0]->getHref();
如果getLink
总是返回一个数组,那么它应该被称为getLinks
(复数),我希望必须迭代返回值;仅与第一个结果一起工作似乎很奇怪。或者,getLink
可以接受参数以返回特定链接,例如:
$href = $obj->getLink(0)->getHref();
PHP不支持直接返回值解除引用,因此对象接口不太适合它所编写的语言,或者您没有按预期使用该对象。