赋值运算符的PHP魔术法

赋值运算符的PHP魔术法,php,types,variable-assignment,magic-methods,Php,Types,Variable Assignment,Magic Methods,我正在尝试创建一个类,它可以像。 在这个类中,您可以创建一个字符串(来自php.net的示例) 我知道PHP是松散类型的,但是他们在SplTypes中有这种功能,所以我希望有一些方法可以模仿这种行为 我希望在下面以这种方式实现它 public function __assign($value) { if($value instanceof MyClass) { return true; } return false; } 我希望能够在自己的课堂上介绍这种行

我正在尝试创建一个类,它可以像。 在这个类中,您可以创建一个字符串(来自php.net的示例)

我知道PHP是松散类型的,但是他们在SplTypes中有这种功能,所以我希望有一些方法可以模仿这种行为

我希望在下面以这种方式实现它

public function __assign($value)
{
   if($value instanceof MyClass)
   {
       return true;
   }
   return false;
}
我希望能够在自己的课堂上介绍这种行为,但找不到相关的魔术作业方法


这可能吗?或者这是一种无法控制的语言功能?

只有在指定或使用对象属性时,魔术方法才起作用。但是像
$string=array()这样的赋值完全断开对象关联,用新对象(数组)覆盖变量名。这与动态/松散类型无关。我完全希望这是php的
c
级别,而不是实现。我认为这是不可能的。不过,在不久的将来看到一个RFC来处理它会很好。PHP解析器可以在任何赋值之前检查_赋值方法,尽管它可能会减慢每次计算;SPLType固定在C代码级别处理,第216/217行表示感谢。我想这就是答案:)
public function __assign($value)
{
   if($value instanceof MyClass)
   {
       return true;
   }
   return false;
}