gpt4 book ai didi

PHP __get __set 方法

转载 作者:可可西里 更新时间:2023-11-01 13:51:12 24 4
gpt4 key购买 nike

class Dog {

protected $bark = 'woof!';

public function __get($key) {
if (isset($this->$key)) {
return $this->$key;
}
}
public function __set($key, $val) {
if (isset($this->$key)) {
$this->$key = $val;
}
}
}

使用这些功能有什么意义。

如果我可以使用

$dog = new Dog();
$dog->bark = 'woofy';
echo $dog->bark;

我为什么要费心将“bark”声明为protected?在这种情况下,__get()__set() 方法是否有效地公开了“bark”?

最佳答案

在这种情况下,他们确实使 $this->bark 有效公开,因为他们只是直接设置和检索值。但是,通过使用 getter 方法,您可以在它被设置时做更多的工作,例如验证它的内容或修改类的其他内部属性。

关于PHP __get __set 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741595/

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