7

__constructコンストラクターを使用する場合と、クラスの名前をコンストラクターとして使用する場合のPHPクラスの違いは正確には何ですか?

例えば:

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

また

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

1 に答える 1

13

上部は、バージョン 5.0 の時点で PHP で行われる新しい方法であり、すべての新しいコードを記述する方法です。後者は古い PHP 4 の方法であり、廃止されています。ある時点で完全に廃止され、PHP から完全に削除されます。

アップデート

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
    }
}
?>
于 2012-05-14T18:30:49.493 に答える