2012-05-14 80 views
7

當使用__construct構造函數時以及使用類的名稱作爲構造函數時,PHP類的區別究竟是什麼?PHP中兩種類構造函數有什麼區別?

例如:

class Some 
{ 
    public function __construct($id) 
    { 
      .... 
    } 
    .... 
} 

OR

class Some 
{ 
     public function Some($id) 
     { 
      .... 
     } 
     .... 
} 

回答

13

頂部是新的方式,可以在PHP做的5.0版本,是所有新的代碼應該怎麼寫。後者是舊的PHP 4方式,已經過時。在某些時候,它將被完全棄用並從PHP中完全刪除。

更新

As of PHP 5.3.3,具有相同名稱的命名空間的類名的最後一個元素的方法將不再被視爲構造。此更改不會影響非命名空間類。

<?php 
namespace Foo; 
class Bar { 
    public function Bar() { 
     // treated as constructor in PHP 5.3.0-5.3.2 
     // treated as regular method as of PHP 5.3.3 
    } 
} 
?> 
+1

已根據[PHP手冊](http://php.net/manual/en/language.oop5.decon.php)在5.3.3中棄用。請參閱示例#2 – mseancole

+0

感謝您的信息。我會相應地更新我的答案。 –

相關問題