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