Bonjour,

J'ai créé une classe Affixe, et je n'arrive pas à modifier les variables des objets de cette classe. L'instanciation fonctionne correctement, mais la fonction ajouter (qui ajoute un élément dans un tableau $modifs et tient un compte) ne conserve pas les modifications au-delà de la fonction ajouter... L'objet oublie les modifications faites dès que la fonction ajouter est terminée.

Voici la classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
class Affixe {
    var $nom;
    var $modifs;
    var $nb_decl;
    function Affixe ($genre, $name, $m) {
        $this->nom = $name;
        $this->nb_decl = 0;
    }
    function ajouter (&$op) {
        $this->modifs[] = $op;
        $this->nb_decl += 1;
    }
}
Voici le code qui appelle cette classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
// lecture du fichier des affixes
$flux = fopen("fr_FR.aff", "r");
while (!feof($flux)) {
    $line = fgets($flux);
    $elements = split(" +", $line);
    if (sizeof($elements) == 4) {
        // nouvel affixe
        $affix = new Affixe ($elements[0], $elements[1], $elements[2]);
        $affixes[$elements[1]] = $affix;
    }
    elseif (sizeof($elements) == 5) {
        // nouvel operandi
        $op = new Operandi ($elements[2], $elements[3], $elements[4]);
        $affix->ajouter($op);
    }
    else {
        echo "<p>#erreur à la lecture du fichier des affixes#</p>";
    }
}
fclose($flux);