2009-12-27 1 views
0

Comment utiliser une fonction que j'ai définie dans une classe parent de la classe enfant?Question d'héritage PHP

par exemple, si je peux utiliser une classe comme ci-dessous

<?php 

class mat 

{ 

function square($x) 

{ 

return $x *$x; 

} 

} 


class matchild extends mat 

{ 

function doublesquare($x) 
{ 

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

} 

} 

?> 

Si je tente ce qui précède, je reçois une erreur disant que la fonction carrée est pas définie.

Réponses et suggestions appréciées.

Répondre

10

Vous devez utiliser this

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

Découvrez PHP de basic documentation sur les classes et les objets.

+0

merci, je vais jeter un oeil au manuel – jimbo

-2

Dans l'appel contructor de matchild parent::__construct()

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

Ensuite, vous pouvez appeler toute méthode contenue dans le parent avec $this->

+2

Vous ne constructeur pas besoin d'appeler une super classe d'utiliser ses méthodes. –

+0

Exactement. Je me suis trompé pendant toutes ces années. :) –

1

Couple de problèmes avec votre extrait. Mais la réponse que vous cherchez est:

$this->square() 
0

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