2012-03-11 36 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