ne function __ construct için kullanılır?

4 Cevap php

I __construct bir sürü sınıfları ile fark edilmiştir. Ben biraz okuma ve internette sörf yaptım, ama ben anlayabileceği bir açıklama bulamadık. Ben sadece OOP ile başlıyorum.

Birisi bana ne bir generali vermek, ve daha sonra php ile nasıl kullanıldığını basit bir örnek olabilir merak ediyordum?

Thanks,
Levi

4 Cevap

The "__construct" was introduced in PHP5 and it is the right way to define your, well, constructors (in PHP4 you used the name of the class for a constructor). You are not required to define a constructor in your class, but if you wish to pass any parameters on object construction then you need one.

Bir örnek bu böyle gidebiliriz:

class Database {
  protected $userName;
  protected $password;
  protected $dbName;

  public function __construct ( $UserName, $Password, $DbName ) {
    $this->userName = $UserName;
    $this->password = $Password;
    $this->dbName = $DbName;
  }
}

// and you would use this as:
$db = new Database ( 'user_name', 'password', 'database_name' );

Her şey PHP kılavuzda açıklanmıştır: click here

__construct() constructor için bir yöntemdir adıdır. Yapıcı oluşturulduktan sonra bir nesne üzerinde çağrıldığında, vb başlatma kodu koymak için iyi bir yerdir, olduğunu

class Person {

    public function __construct() {
        // Code called for each new Person we create
    }

}

$person = new Person();

Yapıcı, örneğin nesne oluşturulduğunda geçirilir normal şekilde parametreleri kabul edebilir

class Person {

    public $name = '';

    public function __construct( $name ) {
        $this->name = $name;
    }

}

$person = new Person( "Joe" );
echo $person->name;

Bazı diğer dillerde (örn. Java) aksine, PHP (farklı parametreleri kabul birden Kurucular sahip olduğu) kurucu yüklenme desteklemiyor. Statik yöntemler kullanarak bu etkiyi elde edebilirsiniz.

Note: Ben (bu yazının yazıldığı anda) kabul edilen cevap günlükten bu alınır.

Kurucusunu bildirmek için onun başka bir yolu. Ayrıca eski için, sınıf adını kullanabilirsiniz:

class Cat
{
    function Cat()
    {
        echo 'meow';
    }
}

ve

class Cat
{
    function __construct()
    {
        echo 'meow';
    }
}

Eşdeğerdir. Sınıfının yeni bir örneği her oluşturulduğunda, bu durumda, onlar bu hat ile çağrılır, denir:

$cat = new Cat();

I think this is important to the understanding of the purpose of the constructor.
Even after reading the responses here it took me a few minutes to realise and here is the reason.
I have gotten into a habit of explicitly coding everything that is initiated or occurs. In other words this would be my cat class and how I would call it.

class_cat.php

class cat {
    function speak() {
        echo "meow";  
    }
}

somepage.php

include('class_cat.php');
mycat = new cat;
$speak = cat->speak();
echo $speak;

Yukarıda verilen "sınıf kedi" örneklerde size class "kedi" yeni bir nesne oluşturmak her zaman istediğiniz varsayılır Nerede kedi "miyav" yerine bunu miyav yapmak için işlevini çağırmak için bekleyen.

Bu şekilde yapıcı yöntemi implicity kullanır burada fikrimi açıkça düşünüyordum ve bu ilk başta anlamak zor yapılmadı.