在PHP5中是否有引用返回的有效技术用途?

我的问题是对以下问题的跟进:使用&符号启动一个PHP函数是什么意思?

问题中使用的示例代码是这样的:

class FacebookRestClient {
...
    public function &users_hasAppPermission($ext_perm, $uid=null) {
        return $this->call_method('facebook.users.hasAppPermission', 
        array('ext_perm' => $ext_perm, 'uid' => $uid));
    }
...
}

当我们已经有一个参考文献($ this)时为什么需要参考?

所选的答案引用了关于返回引用的PHP手册中的以下内容

当您想使用函数来查找引用应绑定到哪个变量时,通过引用返回很有用。 不要使用按引用返回来提高性能。 引擎会自动优化它。 只有当你有合理的技术理由才能返回参考。

第二个答案给出了在PHP4中需要这种技术的一个原因。 但是我没有找到答案,为什么PHP5需要非常有说服力。

有谁知道在PHP5中使用这种技术的任何正当理由?


是的,这是我的代码库中的一个例子。

每个模型都有一个“工厂”类,比如UserFactory。 当我调用UserFactory :: findOne()时,我返回对模型的引用,该模型存储在UserFactory的数组中。

我这样做是为了让我得到用户模型并修改其中的某些内容,然后在代码中再次获取它,即使我从未回到数据库,也会使用新信息更新它。

例如:

<?php
$user = UserModel::findOne([ '_id' => 151 ]);
$user->status = 'disabled';

// Much later
$user = UserModel::findOne([ '_id' => 151 ]);
if ( $user->status != 'disabled' ) {
    // Do stuff
}

通过引用返回是在不对数据库进行两次调用的情况下完成此操作的好方法。

链接地址: http://www.djcxy.com/p/57257.html

上一篇: Is there a valid technical use for returning by reference in PHP5

下一篇: meaning of &$variable and &function?