php覆盖实例变量的=动作

时间:2011-09-06 17:40:24

标签: php oop class overwrite type-safety

  

可能重复:
  Operator Overloading in PHP

我正在尝试创建一个允许在php中使用类型安全变量的库。我想做以下事情:

class int extends typeClass{
     protected $value;

public function __construct($value){
    // Check if the parameter is a integer.
    if( ! is_int($value) ){
        throw new typeIntegerException('This isn\t an Integer.');
    }
    $this->value = $value;
}

// Returns the $value instead of the int class
public function __get(){
    return $this->value;
}

// Sets $value instead of the class
public function __set($value){
    if( ! is_int($value) ){
        throw new typeIntegerException('This isn\t an Integer.');
    }
    $this->value = $value;
}
}

$test = new int(5);
$test = "3"; 

$ test =“3”;我想在这里调用__set或其他方法,而不是使$ test“3”。有可能吗?

提前致谢,

问候, 鲍勃

1 个答案:

答案 0 :(得分:0)

您最近的选择是Spl Types库。问题是它被认为是实验性的,可能会被弃用。恩惠是它完全符合您的要求。