2012-03-11 111 views
0

我想要这样做,对于创建的每个Integer,都会输出一些文本。为此,我期望重载(或扩展)默认的Integer类型。在PHP中重载内置类型的构造函数

我想有一个内置类型(整数,数组,字符串),有一个像

public function __construct($data) { print $data; } 

这是可能的自定义构造函数?在线之前,我甚至都无法找到它。

编辑:

我已经试过这样:

class Integer { /*...*/ } 

这:

class Integer extends Integer { /*...*/ } 
+4

默认的整数和字符串类型在PHP中不是对象。因此不会超载。是什么让你觉得他们是? – Dan 2012-03-11 07:00:39

+0

没有必要让我觉得他们是对象,当我将它们想象成对象时,解释我想要什么就更容易,我想对他们做什么,我可以做一个对象。 – DanRedux 2012-03-11 07:01:56

+0

那么你可以在它们周围编写包装器,并使用它们来代替使用本地整数和字符串类型,但是真的有必要吗?性能下降只是其中一个缺点。 – Dan 2012-03-11 07:04:21

回答

0

由于PHP自身的标量类型不是对象,你不能重载它们。
你可以写包装类,并利用它们像这样:

$int = new Integer(5); 

但是这可能更多的工作比是有道理的。

+0

是的,它只是没有我想调用构造函数的功能,只是这样做:$ x = 5; – DanRedux 2012-03-11 11:38:29

+1

是的,那么PHP不适合你。 :-P – deceze 2012-03-11 11:39:06