0

我决定找点乐子,并在 PHP 中实现 .Net 属性。

我目前的设计中心围绕着:

$var;

method Var($value = null)
{
if($value == null) {
return $var;
}
else {
$var = $value;
}

}

显然,如果有人试图将属性(和相关变量)设置为 null,这会遇到一些问题,所以我正在考虑创建一个永远不会使用的一次性类。想法,评论?

4

2 回答 2

2

不要重新发明轮子。PHP 已经提供了神奇的方法__get__set可以用来实现类似 .NET 的属性;文档页面上有示例。PHP 框架还使用这些钩子将代码执行重定向到正确的 getter/setter 方法(由于您自己发现的原因,它们确实需要不同),以便也可以实现只读属性;一个(诚然复杂的)例子是this

专业提示:如果你重写__getand __set,你还需要重写__issetand __unset,这样你的类就可以在存在和 等结构的情况下继续直观地empty表现unset

于 2012-05-14T19:47:46.647 回答
0

我不明白你想在这里实现什么。你想要一个吸气剂吗?

public function getVar() {
    return $this->var;
}

你要二传手吗?

public function setVar($newVar) {
    $this->var = $newVar;
}

您甚至可以将其公开并让外部人员设置 var:

public $var;
...
$object->var = "New Var";
于 2012-05-14T19:50:04.290 回答