Récupération de variables extérieures à une class (prog orienté objet)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupération de variables extérieures à une class (prog orienté objet)

par chrislabricole » 09 juin 2008, 21:08

Merci ça marche !

Je l'avais dit que ça aller vite se résoudre :D :D

Aller hop ! Résolu ! :wink:

par Ryle » 09 juin 2008, 21:03

A l'intérieur d'une classe, tu ne dois avoir que des attributs et/ou des méthodes et rien d'autre, donc pas de $this->machin = $truc. En revanche tu peux faire cela à l'intérieur d'une méthode, ou éventuellement initialiser tes variables avec une constante lors de leur déclaration (mais c'est pas recommandé).

En général on utilise pour cela un Constructeur. Le constructeur est une méthode qui est appellée à chaque fois que tu créer une nouvelle instance de ta classe (avec "new"). L'idée est donc d'en profiter pour initialiser les variables de cette instance en les passant soit en paramètre où en les récupérant depuis les variables super-globales
class Galerie { 
    var $prenom_f; 
    var $prenom_h; 
    var $year; 
    var $date_propre; 
    var $date_brute; 

    /* en php4, le constructeur à le même nom que la classe
        en php5 on peut utiliser __contruct(), qui permet de surcharger le constructeur parent en cas d'héritage */
    function Galerie($prenom_f_mysql, $prenom_h_mysql, $date_propre_mysql) {
        $this->prenom_f = $prenom_f_mysql; 
        $this->prenom_h = $prenom_h_mysql; 
        $this->year = $_SESSION['year']; 
        $this->date_propre = $date_propre_mysql; 
        $this->date_brute = $_SESSION['date']; 
    }
}

$objGalerie = new Galerie($prenom_f_mysql, $prenom_h_mysql, $date_propre_mysql);

par chrislabricole » 09 juin 2008, 21:01

Euh... ben écoute je suis débutant en objet donc je sais pas justement ^^

Merci quand même ^^ :)

par animithra » 09 juin 2008, 20:58

bonsoir.

je ne connais pas l'orientation objet de PHP mais j'ai l'habitude de JAVA, alors je me pose la question suivante :

comme tu as une classe et que tu définis ses attributs, ne serait-il pas logique de le faire dans un constructeur ?

sinon, ne serait-il pas logique d'avoir une méthode d'initialisation ?

tout ça est au conditionnel, comme je l'ai dit je n'ai pas encore pris le temps d'en savoir plus sur PHP objet...

bonne progra !

Récupération de variables extérieures à une class (prog orie

par chrislabricole » 09 juin 2008, 20:53

Bonsoir !

Je débute en programmation en orienté objet, et j'ai un pitit problème qui devrait se résoudre facilement...

Voilà le code :
class Galerie {
	var $prenom_f;
	var $prenom_h;
	var $year;
	var $date_propre;
	var $date_brute;

	$this->prenom_f = $prenom_f_mysql;
	$this->prenom_h = $prenom_h_mysql;
	$this->year = $_SESSION['year'];
	$this->date_propre = $date_propre_mysql;
	$this->date_brute = $_SESSION['date'];
	
}
$prenom_f_mysql, $prenom_h_mysql, $date_propre_mysql sont des variables qui sont récupérées plus haut garce à mysql et une while...

Je pense qu'il n'arrive pas à sortir de la class pour aller les récupérées... pas sûr...

Voici l'erreur :
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /.../.../index.php on line 38
ligne 38 : $this->prenom_f = $prenom_f_mysql;

Merci à vous !