2012-05-14 3 views
7

В чем разница между классами PHP при использовании конструктора __construct и при использовании имени класса в качестве конструктора?В чем разница между двумя типами конструкторов классов в PHP?

Например:

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

ИЛИ

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

ответ

13

Верхний новый способ это делается в PHP, начиная с версии 5.0, и как должно быть написано новый код. Последний является старым способом PHP 4 и устарел. В какой-то момент он будет полностью устарел и полностью удален из PHP.

Update

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

Устаревшее в 5.3.3 согласно [Справочник по PHP] (http://php.net/manual/en/language.oop5.decon.php). См. Пример # 2 – mseancole

+0

Спасибо за информацию. Я буду соответствующим образом обновлять свой ответ. –

Смежные вопросы