gpt4 book ai didi

php自动setter和getter

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

我正在尝试为 php 对象实现一些自动 getter 和 setter。

我的目标是为每个属性自动拥有方法 getProperty()setProperty(value),如果没有为脚本的属性实现该方法将简单地设置或获取值。

一个例子,让我自己清楚:

class Foo {
public $Bar;
}

$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "bar"

class Foo {
public $Bar;
public function setBar($bar) { $Bar = $bar; }
public function getBar($bar) { return 'the value is: ' . $bar; }
}

$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "the value is: bar"

关于如何完成此操作的任何想法/提示?

最佳答案

如果你想模拟任意属性的 getXysetXy 函数,那么使用魔法 __call包装器:

function __call($method, $params) {

$var = lcfirst(substr($method, 3));

if (strncasecmp($method, "get", 3) === 0) {
return $this->$var;
}
if (strncasecmp($method, "set", 3) === 0) {
$this->$var = $params[0];
}
}

这将是一次做一些有用的事情的好机会,通过添加类型映射或任何东西。否则避开getters and setters总而言之可能是可取的。

关于php自动setter和getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8742900/

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