2011-09-06 2 views
0

가능한 중복의 = 액션을 덮어 :
Operator Overloading in PHPPHP는 복제 된 변수

내가 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"; 나는 $ test를 "3"으로 만드는 대신 여기에 __set이나 다른 메소드를 호출하고 싶다. 그렇게 할 수 있습니까? 사전에

감사합니다,

인사말, 밥

답변

0

당신의 가장 가까운 옵션은 Spl Types 라이브러리입니다. 문제는 실험적인 것으로 간주되며 더 이상 사용되지 않을 수 있습니다. 그것이 당신이하려는 일을 정확하게 수행한다는 것이 장점입니다.

+0

그래서 내가 원하는 것을 얻는 유일한 방법은 실험적인 클래스를 사용하는 것입니다. Split Types는 내가 만들고자하는 것과 동일하기 때문에 가능합니다. 그러면 어떻게 그랬을까요? 클래스의 소스 코드를 볼 수있는 방법이 있습니까? 또는 다른 langauge 다음에 php입니까? 아직도 답변을 주셔서 대단히 감사합니다. btw ^^ – Bob

+0

그들은 C로 작성하여 확장 기능으로 추가했습니다. 필요한 경우 코드를 포크하고 유지 관리 할 수 ​​있다고 가정합니다. – cwallenpoole

+0

정보를 입력하십시오. ^^ – Bob