PHP观察者模式/魔术设定器/代理

PHP观察者模式/魔术设定器/代理,php,proxy-classes,magic-methods,observer-pattern,Php,Proxy Classes,Magic Methods,Observer Pattern,我正在寻找一种方法来监视我的类中的变量何时被设置 例如,如果我有以下课程: class MyClass { public $myVariable; } 在我的代码中,我有: $class = new MyClass(); $class->myVariable = "value"; 我希望能够“钩住”myVariable的setter。所以当我调用$class->myVariable=“Value”;过滤器将启动,检查新值是否等于“value”,如果等于,则抛出异常 像往常一

我正在寻找一种方法来监视我的类中的变量何时被设置

例如,如果我有以下课程:

class MyClass  {
    public $myVariable;
} 
在我的代码中,我有:

$class = new MyClass();
$class->myVariable = "value";

我希望能够“钩住”myVariable的setter。所以当我调用$class->myVariable=“Value”;过滤器将启动,检查新值是否等于“value”,如果等于,则抛出异常

像往常一样,将属性定义为私有或受保护

然后使用神奇的方法捕捉访问

致意


Raffael

在我看来,强制使用私有属性只是为了实现一些验证是不正确的(尤其是在私有关键字或多或少被覆盖的情况下)。这是一项工作,但不幸的是不能满足我的需要。什么?这是一个标准的OOP范例。。。我不理解您的观点,将属性设置为私有,然后允许以后从类外部访问它。