Php kalıtım soru

4 Cevap php

Nasıl ben çocuk sınıfta bir üst sınıfında tanımlanmış bir işlevi kullanmak mı?

Örneğin ben aşağıdaki gibi bir sınıf kullanmak durumunda

<?php

class mat

{

function square($x)

{

return $x *$x;

}

}


class matchild extends mat

{

function doublesquare($x)
{

return square($x) * square($x)

}

}

?>

Ben yukarıda denerseniz, ben kare işlevi tanımlı değil söyleyerek bir hata alıyorum.

Takdir cevaplar ve öneriler.

4 Cevap

Sen kullanmanız gerekir this

return $this->square(x) * $this->square(x);

Sınıflar ve nesneler üzerinde PHP'nin basic documentation göz atın.

Snippet'inizde ile sorunların çift. Ama aradığınız cevabı:

$this->square()

parent::square(x) * parent::square(x)

Matchild en contructor çağrısı parent::__construct()

class matchild extends mat
{
    function __construct()
    {
        parent::__construct();
    }
}

Sonra $this-> ile üst içinde bulunan herhangi bir yöntemini çağırabilir