PHP - 成员封装返回奇怪的引用

1 php reference

我有一个有私人会员的班级$content.这是由get方法包装的:

class ContentHolder
{
    private $content;
    public function __construct()
    {
        $this->content = "";
    }

    public function getContent()
    {
        return $this->content;
    }
}
$c = new ContentHolder();
$foo = array();
$foo['c'] = $c->getContent();
Run Code Online (Sandbox Code Playgroud)

现在$foo['c']是一个参考content,这是我不明白的.我怎样才能获得价值?先感谢您.

Jer*_*ten 5

我刚试过你的代码而$foo['c']不是参考$content.(分配新值$foo['c']不会影响$content.)

默认情况下,所有PHP函数/方法都按值传递参数并按值返回.要通过引用返回,您需要将此语法用于方法定义:

public function &getContent()
{
    return $this->content;
}
Run Code Online (Sandbox Code Playgroud)

调用方法时这个语法:

$foo['c'] = &$c->getContent();
Run Code Online (Sandbox Code Playgroud)

http://ca.php.net/manual/en/language.references.return.php.