gpt4 book ai didi

Php __get 和 __set 魔术方法 - 为什么我们需要这些方法?

转载 作者:可可西里 更新时间:2023-11-01 12:43:20 26 4
gpt4 key购买 nike

此处提供 Zend 快速入门指南 http://framework.zend.com/manual/en/learning.quickstart.create-model.html我们可以看到:

class Application_Model_Guestbook
{
protected $_comment;
protected $_created;
protected $_email;
protected $_id;

public function __set($name, $value);
public function __get($name);


public function setComment($text);
public function getComment();
...

我通常不使用任何魔术方法来创建我的 getter 和 setter。我在快速指南上看到过这个,但我不明白为什么我们需要这个。

谁能帮帮我?

非常感谢

最佳答案

你(通常)从不调用 __set__get直接地。 $foo->bar会调用$foo->__get('bar')如果 bar 则自动不可见并且__get存在。

在您链接到的教程中,getter 和 setter 被设置为自动调用适当的单独的 get/set 函数。所以$foo->comment = 'bar'将间接调用 $foo->setComment('bar') .这不是必需的...这只是一种方便。

在其他情况下,__get可用于创建看起来像只读变量的内容。

关于Php __get 和 __set 魔术方法 - 为什么我们需要这些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com