PHP&;实现.Netish属性

PHP&;实现.Netish属性,php,Php,我决定找点乐子,用PHP实现.Net属性 我当前的设计围绕以下内容: $var; method Var($value = null) { if($value == null) { return $var; } else { $var = $value; } } 显然,如果有人试图将属性(和相关变量)设置为null,这会遇到一些问题,因此我考虑创建一个永远不会使用的一次性类。想法、评论?不会重新发明轮子。PHP已经提供了神奇的方法,可以用来实现.NET外观相似的属性;文档页面上有一些示例。P

我决定找点乐子,用PHP实现.Net属性

我当前的设计围绕以下内容:

$var;

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

}

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

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


专业提示:如果您确实重写了
\uuuuu get
\uu set
,那么您还需要重写
\uuuu isset
\uu unset
,这样您的类就可以在存在
empty
unset

等构造的情况下继续直观地运行。我不明白您在这里想要实现什么。你想要一个getter吗

public function getVar() {
    return $this->var;
}
你想要一个二传手吗

public function setVar($newVar) {
    $this->var = $newVar;
}
您甚至可以将其公开,并让外部人员设置var:

public $var;
...
$object->var = "New Var";