2011-05-05 8 views

답변

0

저는 플로트가 클래스가 아닌 원시적 인 것처럼 믿을 수는 없지만 잘못 될 수 있습니다.

2

나는 적어도 float이 아니라는 것을 확신합니다.

당신은

class MyFloat { 
    private $value; 

    public function __construct($value) { 
     if (! is_float($value)) { 
      throw new Exception('Floats only'); 
     } 
     $this->value = $value; 
    } 

    public function formatted($places) { 
     return number_format($this->value, $places); 
    } 

    public function get() { 
     return $value; 
    } 
} 

PHP 그냥 __toInt() 마법 방법 :

+0

감사 캐스트 윌이 일을 생각하지 않아? (MyFloat) 123.45? – DaveO

+0

@DaveO 나는 그렇게 생각하지 않지만, 나는 100 % 확실하지 않다. – alex

2

확장의 즐거움을위한 SplFloat이 필요합니다 ...하지만 자신의 클래스를 만들 수 있습니다. 그러나 아직 사용할 수 없습니다 현재 PHP 버전입니다. 또한 기본 언어 의미에 영향을 미치지 않습니다. 항상 별도의 클래스입니다. (PHP는 일반적으로 "순수하지 않은"OOP 언어라고합니다.)

"향후 호환성"을 위해 확장 목적으로이 이름을 선택할 수 있습니다.

if (!class_exists("SplFloat")) { class SplFloat {} } 

class MyFloat extends SplFloat { 
    ... 
+0

+1 나는 배우 고있다. :) – alex

관련 문제