Besoin d'aide (class)

Besoin d'aide (class) - PHP - Programmation

Marsh Posté le 02-08-2005 à 23:28:49    

Bonjour j'ai un petit probleme, je vais raccourcir :
 
je dois apellé ça dans une fonction mais je ne sais pas comment faire du tout, j'aimerais afficher de cette façon la :
 

Code :
  1. $CONFIG['info'] = 'test info';
  2. $CONFIG['truc'] = 'test truc';
  3. function test()
  4. {
  5. global $CONFIG;
  6. // La je pense qu'il faudrait faire la class
  7. echo $CONFIG->info;
  8. echo $CONFIG->truc;
  9. }


 
Voilà donc echo $CONFIG->info; devrait m'afficher "test info" et echo $CONFIG->truc; devrait m'afficher "test truc"


Message édité par Masenko le 02-08-2005 à 23:40:22
Reply

Marsh Posté le 02-08-2005 à 23:28:49   

Reply

Marsh Posté le 02-08-2005 à 23:32:06    

C'est exactement ça (PHP4) :

class Config {
  var $info;
  var $truc;
 
  function Config($info, $truc) {
    $this->info = $info;
    $this->truc = $truc;
  }
}


 
Et après :

$conf = new Config('Information utile', 'Ca c\'est un truc');
 
echo $conf->info, $conf->truc;

Reply

Marsh Posté le 02-08-2005 à 23:32:35    

En fait, je crois que j'ai pas compris ta question :D

Reply

Marsh Posté le 02-08-2005 à 23:34:12    

Non tu n'as pas "mis" bien expliqué.

Reply

Marsh Posté le 02-08-2005 à 23:34:21    

Nan en faite attend j'édite ma question d'ici 2 minutes ce sera mieux expliquer

Reply

Marsh Posté le 02-08-2005 à 23:44:01    

Masenko a écrit :

Bonjour j'ai un petit probleme, je vais raccourcir :
 
je dois apellé ça dans une fonction mais je ne sais pas comment faire du tout, j'aimerais afficher de cette façon la :
 

Code :
  1. $CONFIG['info'] = 'test info';
  2. $CONFIG['truc'] = 'test truc';
  3. function test()
  4. {
  5. global $CONFIG;
  6. // La je pense qu'il faudrait faire la class
  7. echo $CONFIG->info;
  8. echo $CONFIG->truc;
  9. }


 
Voilà donc echo $CONFIG->info; devrait m'afficher "test info" et echo $CONFIG->truc; devrait m'afficher "test truc"


C'est a dire qu'on ne choisit pas une notation pour sa "beauté", une notation ca correspond a structure du langage bien precise.
 
La notation que tu "souhaites" c'est une notation qu'on utilise dans les classes mais il faut donc avoir l'utilité d'une classe et que ce soit justifié par de reels besoin pour en utiliser une. On ne declare pas une classe unikement pour pouvoir mettre des -> dans son code :/

Reply

Marsh Posté le 02-08-2005 à 23:47:55    

Oui je sais j'en ai reelement besoin sinon je demanderais pas j'ai environ 50 lignes de $CONFIG['le_nom'] et j'en ai besoin dans beaucoup de function et donc c'est pas possible de seulement faire par exemple
$info = 'test info';
$truc = 'test truc';
et encore 50 truc de types $le_nom
et ensuite dans ma function
global $info, $truc, et 50 truc....

Reply

Marsh Posté le 03-08-2005 à 16:28:38    

ce que je comprends pas c'est pourquoi tu ne te contentes pas d'un simple :

Code :
  1. echo $CONFIG['info'];
  2. echo $CONFIG['truc'];


plutot qu'un echo $CONFIG->info; ????????
 
bien que tu puisses faire comme ca aussi  (même si y'a pas forcement grand intéret..)

Code :
  1. class StoreParam {
  2.   // voir si il faut un constructeur function __CONSTRUCT ou function StoreParam ....
  3.   function addParam($name,$value) {
  4.     $this->$name=$value;
  5.   }
  6.   function getValue($name) {
  7.     if(isset($this->$name)) return $this->$name;
  8.     else return "La variable n'existe pas";
  9.   }
  10. }
  11. $CONFIG=new StoreParam();
  12. $CONFIG->addParam('info','test info');
  13. $CONFIG->addParam('truc','test truc');
  14. function test($objectStoreParam) {
  15. echo $objectStoreParam->getValue('info');
  16. echo $objectStoreParam->getValue('truc');
  17. }
  18. test($CONFIG);
  19. //ou encore
  20. function bigtest($objectStoreParam) {
  21.     if (is_object($objectStoreParam)) {
  22.       $tabO=get_object_vars($objectStoreParam);
  23.       while(list($param,$val)=each($tabO)) {
  24.         echo $param.' à pour valeur : .'$val.'<br>';
  25.       }
  26.     } else echo "Il n'y a aucune valeur à afficher!";
  27. }
  28. bigtest($CONFIG);


mais bon....

Reply

Marsh Posté le 03-08-2005 à 20:29:55    

Merci pour ta réponse, c'est sympa d'avoir pris le temps d'écrire tout ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed