8722 sujets

Développement web côté serveur, CMS

Bonjour à tous !
J'ai un petit (gros souci).
J'ai deux classes : animal, et shark (qui hérite de animal).
Dans le shark, il y a une méthode qui permet de faire unset(un animal).
J'ai créé deux objets l'un de type shark et l'autre de type animal, je passe animal en paramètre à la fonction de shark qui fait le unset, mais pourtant il n'est pas supprimé.
Donc je voudrais savoir comment supprimer une classe depuis une autre... Merci à vous
après différents tests même avec un passage par reference on ne peut pas appliquer le unset sur une variable : il faudrait plutôt la mettre à = null: exemple

class animal{
    public function testa(){
        echo  "class animal";
    }
}

class shark extends animal{
    
    public function testb(){
        echo "class shark";
    }
    
    public function unsetObject($obj){
        unset($obj);
    }
    
    public function unsetObjectReference(&$obj){
        $obj = null;
    }
}

$ani = new animal();
$shar = new shark();

$ani->testa(); //affiche 'class animal'
$shar->testb();//affiche 'class shark'

$shar->unsetObject($ani);
$ani->testa();//affiche 'class animal'
$shar->unsetObjectReference($ani);
$ani->testa();//erreur car $ani n'existe plus