【发布时间】:2012-03-11 06:57:54
【问题描述】:
我正在尝试这样,对于创建的每个 Integer,都会输出一些文本。为此,我希望重载(或扩展)默认的 Integer 类型。
我想要一个内置类型(整数、数组、字符串)来拥有一个自定义构造函数,例如
public function __construct($data) { print $data; }
这可能吗?在网上之前我什至都没有尝试过。
编辑:
我试过这个:
class Integer { /*...*/ }
还有这个:
class Integer extends Integer { /*...*/ }
【问题讨论】:
-
默认的整数和字符串类型在 PHP 中是没有对象的。因此没有超载。是什么让你认为他们是?
-
没有什么必然会让我认为它们是对象,当我将它们视为对象时更容易解释我想要什么,因为我想对它们做什么,我可以对一个对象做什么。
-
好吧,您可以围绕它们编写包装器并使用它们而不是使用本机整数和字符串类型,但这真的有必要吗?性能下降只是其中一个缺点。
-
这是不可能的。正如我所说,它们在 PHP 本身中不是对象,因此您不能扩展和重载它们。您想要的是两全其美:本地访问并期望它成为您的自定义类。即使它们是不可能的对象,因为您必须创建一个新的 MyInteger(5) 实例才能实际使用您自己的代码。
-
否...您应该使用调试器来调试...
标签: php types constructor overloading