我可以扩展php类型吗?

我可以扩展php类型吗?,php,types,extension-methods,Php,Types,Extension Methods,e、 g 然后使用123。格式化的?我不相信你可以,因为float是一个基本体而不是一个类,但我可能是错的。我不相信你可以,因为float是一个基本体而不是一个类,但我可能是错的。我肯定你不能这样做,至少在float上不能 不过你可以自己上课 class MyFloat extends float { function Formatted() { return number_format($this->value,2); } } PHP只需要一个\uu-toInt()神奇

e、 g


然后使用
123。格式化的

我不相信你可以,因为float是一个基本体而不是一个类,但我可能是错的。

我不相信你可以,因为float是一个基本体而不是一个类,但我可能是错的。

我肯定你不能这样做,至少在
float
上不能

不过你可以自己上课

class MyFloat extends float {
  function Formatted() {
    return number_format($this->value,2);
  }
}

PHP只需要一个
\uu-toInt()
神奇的方法:)

我肯定你做不到,至少不能在
浮点上

不过你可以自己上课

class MyFloat extends float {
  function Formatted() {
    return number_format($this->value,2);
  }
}
PHP只需要一个
\u toInt()
神奇的方法:)

就可以满足您的扩展需求。但是,它在当前PHP版本中尚不可用。这两种方式都不会影响基本的语言语义。它将永远是一个单独的类。(PHP通常被称为“非纯”OOP语言。)

但为了“将来的兼容性”,您可以选择此名称进行扩展

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版本中尚不可用。这两种方式都不会影响基本的语言语义。它将永远是一个单独的类。(PHP通常被称为“非纯”OOP语言。)

但为了“将来的兼容性”,您可以选择此名称进行扩展

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;
  }
}

@达维奥我不这么认为,但我不是100%肯定。@达维奥我不这么认为,但我不是100%肯定。