deuxieme erreur que je ne comprend pas non plus.

Eléphanteau du PHP | 38 Messages

29 mars 2009, 14:38

Rebonjour, je verifie mes derniers scripts datant de quelques mois, et je m'apercois que certains bug..je n'arrive pas a comprendre pourquoi!

Voici le script:
<?php
class BatimentUnites
{
    // Propriétés
   public $coutPopulation;
   public $coutBois;
   public $coutPierre;
   public $coutFer;
   public $pointsObtenus;
   public $Temps;
   
   // Constructeur de l'objet
   public function __construct($couts=array(), $points=array(), $diminution_temps=array())
   {
           $this->coutPopulation = $couts['population'];
           $this->coutBois = $couts['bois'];
           $this->coutPierre = $couts['pierre'];
           $this->coutFer = $couts['fer'];
           $this->pointsObtenus = $points;
		   $this->Temps = $diminution_temps;
        
   }
   
   // Méthodes setter pour écrire dans les propriétés
   public function setCoutPopulation($niveau, $valeur){
           $this->coutPopulation[$niveau] = $valeur;
   }
   public function setCoutBois($niveau, $valeur){
           $this->coutBois[$niveau] = $valeur;
   }
   public function setCoutPierre($niveau, $valeur){
           $this->coutPierre[$niveau] = $valeur;
   }
   public function setCoutFer($niveau, $valeur){
           $this->coutFer[$niveau] = $valeur;
   }
   public function setPointsObtenus($niveau, $valeur){
           $this->pointsObtenus[$niveau] = $valeur;
   }
   public function setDiminutionTemps($niveau, $valeur){
           $this->Temps[$niveau] = $valeur;
   }
   
   // Méthodes init pour remettre à zéro des valeurs
   public function initCoutPopulation(){
           foreach ($this->coutPopulation as $niveau=>$valeur) $this->setCoutPopulation($niveau, 0);
   }
   public function initCoutBois(){
           foreach ($this->coutBois as $niveau=>$valeur) $this->setCoutBois($niveau, 0);
   }
   public function initCoutPierre(){
           foreach ($this->coutPierre as $niveau=>$valeur) $this->setCoutPierre($niveau, 0);
   }
   public function initCoutFer(){
           foreach ($this->coutFer as $niveau=>$valeur) $this->setCoutFer($niveau, 0);
   }
   public function initPointsObtenus(){
           foreach ($this->pointsObtenus as $niveau=>$valeur) $this->setPointsObtenus($niveau, 0);
   }
   public function initDiminutionTemps(){
           foreach ($this->diminution_temps as $niveau=>$valeur) $this->setTemps($niveau, 0);
   }
   // Méthodes getter pour lire le contenu des propriétés
   public function getCoutPopulation($niveau=null){ // null pour retourner tous les niveaux
           return $niveau==null ? $this->coutPopulation : (isset($this->coutPopulation[$niveau]) ? $this->coutPopulation[$niveau] : null);
   }
   public function getCoutBois($niveau=null){
           return $niveau==null ? $this->coutBois : (isset($this->coutBois[$niveau]) ? $this->coutBois[$niveau] : null);
   }
   public function getCoutPierre($niveau=null){
           return $niveau==null ? $this->coutPierre : (isset($this->coutPierre[$niveau]) ? $this->coutPierre[$niveau] : null);
   }
   public function getCoutFer($niveau=null){
           return $niveau==null ? $this->coutFer : (isset($this->coutFer[$niveau]) ? $this->coutFer[$niveau] : null);
   }
   public function getPointsObtenus($niveau=null){
           return $niveau==null ? $this->pointsObtenus : (isset($this->pointsObtenus[$niveau]) ? $this->pointsObtenus[$niveau] : null);
   }
   public function getDiminutionTemps($niveau=null){
           return $niveau==null ? $this->diminution_temps : (isset($this->diminution_temps[$niveau]) ? $this->diminution_temps[$niveau] : null);
   }
		   }












?> 
Et voici l'erreur:

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:/wamp/www/travaildumoment/class_batiments_unités.php' (include_path='.;C:\php5\pear') in Unknown on line 0

merci

Eléphanteau du PHP | 14 Messages

29 mars 2009, 15:17

Coucou !

Evite les nom de fichiers avec des accents :)

@tchaOo°

Eléphanteau du PHP | 38 Messages

29 mars 2009, 18:20

c'était simplement ca? :lol:

Merci bcp^^

ViPHP
ViPHP | 1024 Messages

29 mars 2009, 19:19

ça ressemble à la création d'un jeu tout ça :P

A+

Pascal

Eléphanteau du PHP | 38 Messages

30 mars 2009, 20:15

exactement^^ je galere vachement, mais j'ai le projet de faire un jeu effectivement^^

ViPHP
ViPHP | 3300 Messages

30 mars 2009, 21:36

yop

Au passage tu as des getters et des setters, pkoi tu laisse tes propriétés en public, tu peux les passer en protected voire private.
Fait du php depuis que ca existe ou presque :)

Eléphanteau du PHP | 38 Messages

31 mars 2009, 10:44

Bah j'ai peu de base en POO, et j'ai eu de l'aide pour ce script. Il voulait aussi les faire en private, mais je me suis dit qu'autant faire le plus simple.
Ce n'est pas trop dérangeant si?

Eléphanteau du PHP | 34 Messages

05 avr. 2009, 22:22

Simplement, si tes propriétés sont publics, les getters et setters ne servent plus à rien :wink:
Par contre, en les mettant protected ou private, tu t'assure que les utilisateurs de cette objets passeront par les méthodes dévolues.
Et tu contrôles mieux ce qui se passe sur tes propriétés, leurs types notamment.
These lines the last endeavor,
To find the missing lifeline.