Une instance appelée : interaction possible? [Résolu]

Signaler
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009
-
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009
-
Bonjour,
Désolé pour le titre, je sais vraiment pas comment décrire mon problême en 2 termes...
J'ai une classe a peu pres comme ça:
<?php
class soldat
{
    var $defense=3;
    var $pv=20;

    function couteau($instance)//$instance est, en gros une autre instance de soldat
    {
        $degat_portes = 7 - $instance->defense;
        if($degat_portes>0)
        {
            $instance->pv-=$degat_portes;
        }
    }
}
$lol = new soldat;
$pip = new soldat;
$pip->couteau($lol);//pip donne un cou de couteau..
?>
J'ai fait tous les tests avec echo, tout est ok mais  bon, niet...
J'ai peut-être une idée : développer 2 fonctions et faire:
$pip->couteau_donne();
$lol->couteau_recu();
je me lance la dessus, si quelqu'un voit coment regrouper ça en une seule et même fonction, et m'en expliquer l'intérêt, pour bien que je saisisse.

3 réponses

Messages postés
138
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
29 février 2008

Salut,

Essaye cela :

<?php
class soldat
{
    var $defense= 3;
    var $pv=20;

    function couteau( & $instance)//$instance est, en gros une autre instance de soldat
    {
        $degat_portes = 7 - $instance->defense;
        if($degat_portes>0)
        {
            $instance->pv-=$degat_portes;
        }
    }
}
$lol = new soldat();
$pip = new soldat();
$pip->couteau($lol);//pip donne un cou de couteau..
?>

Le & dans function couteau(&$instance) permet de dire que l'objet $instance est une donnée-résultat qui est donc modifier.
Messages postés
138
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
29 février 2008

Qu'est-ce que tu veux dire par "J'ai fait tous les tests avec echo, tout est ok mais  bon, niet..."
C'est quoi qui ne fonctionne pas ?
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

et bien, j'ai testé si $instance était considéré comme un Objet =>oui
si $instance->pv était diminué=>oui, mais lorsque je fais
$lol->affich(); //ma fonction afficher , $instance->pv est toujours a 20