Page 1 sur 1

deuxieme erreur que je ne comprend pas non plus.

Posté : 29 mars 2009, 14:38
par tghpow
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

Posté : 29 mars 2009, 15:17
par Plume
Coucou !

Evite les nom de fichiers avec des accents :)

@tchaOo°

Posté : 29 mars 2009, 18:20
par tghpow
c'était simplement ca? :lol:

Merci bcp^^

Posté : 29 mars 2009, 19:19
par pascaltje
ça ressemble à la création d'un jeu tout ça :P

A+

Pascal

Posté : 30 mars 2009, 20:15
par tghpow
exactement^^ je galere vachement, mais j'ai le projet de faire un jeu effectivement^^

Posté : 30 mars 2009, 21:36
par Nagol
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.

Posté : 31 mars 2009, 10:44
par tghpow
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?

Posté : 05 avr. 2009, 22:22
par Lirio
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.