IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Classes et variables externes [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Classes et variables externes
    Bonjour,

    J'ai ici un petit test qui d'une classe qui essaye de lire une variable externe.
    A priori, de part mes connaissances actuelles, ce ne serait pas possible mais comme on ne peut tout savoir....

    Voci mon test:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    $myString = "ABCDEFGHIJKLMNOPQRSTUVXYW" ;
     
    [class Test
    {	public $myString ;
    // 
    //		Test Constructor
    //		====================
           	public function __construct()
           	{	
           	}
     
    		function Execute()
    		{	print("myString = " . $myString) ;
    		}
     
    // 
    //		Test Destructor
    //		===================
           	public function __destruct()
           	{
           	}
     
    }
     
    $test = new test() ;
    $test->execute() ;
    ?>
    qui affiche ce qu'il peut:

    Avec le log attendu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [11-Jun-2010 12:20:19] PHP Notice:  Undefined variable: myString in F:\WebSites\architecture\grunk2.php on line 16
    [11-Jun-2010 12:20:48] PHP Notice:  Undefined variable: myString in F:\WebSites\architecture\grunk2.php on line 16
    Connaissant la puissance de PHP, je suis à peu près certain qu'il y a moyen, mais je ne suis pas encyclopédiste....

    Merci à celui qui me mettra sur la voie

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    C'est on ne peut plus normal.

    Une classe ne doit JAMAIS s'appuyer sur des variables externes.

    Une classe doit être vue comme un monde fermé, qui répond à une problématique en toute autonomie et qui communique avec l'"extérieur" via une interface volontairement limitée.

  3. #3
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut
    Mais je m'en doutais bien PetitBedon.....
    Il se fait que cela m'aurait bien arrangé si.....

    Enfin.... on fera avec...

    Merci à toi....

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Citation Envoyé par ETVigan Voir le message
    Il se fait que cela m'aurait bien arrangé si.....
    Non. Imagine le JAMAIS en police 120.
    [beurk]
    Des moyens existent, comme le tableau $GLOBALS ou le mot clé global.
    [/beurk]
    Mais ne fais JAMAIS ça !

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Et simplement passer la variable en argument à ta 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
    22
    23
    24
    25
    26
    class Test
    {	public $myString ;
    // 
    //		Test Constructor
    //		====================
           	public function __construct($myString)
           	{
                  $this->myString = $myString;	
           	}
     
    		function Execute()
    		{	print("myString = " . $myString) ;
    		}
     
    // 
    //		Test Destructor
    //		===================
           	public function __destruct()
           	{
           	}
     
    }
     
    $test = new test($myString) ;
    $test->execute() ;
    ?>
    Ca répond pas à ce que tu souhaites faire ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Variable indicée comme code retour MYsql
    Bonjour Grunk,

    Pas tout à fait.... et pas pratique...

    Pour chaque page de mon site, j'ai un fichier du genre:

    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
    <?php
    	$PTR_session = session_start() ;
    // =============================================================================================================================== //
    require_once $_SERVER["DOCUMENT_ROOT"] . "/class/define/equate.php" ;
    // =============================================================================================================================== //
    	$screen   = "index" ;
    	$title    = "Bienvenue sur le site de " . $site . "!" ;
    	$subtitle = "Les non-membres désireux de nous contacter sont priés de le faire" ;
    	$form     = "" ;
    	$menu 	  = $screen ;
    	$submenu  = $screen ;
    	$klimsg   = $title ; 
    	$mustmber = 0 ;
    // =============================================================================================================================== //
    require_once $_SERVER["DOCUMENT_ROOT"] . "/class/newSkelt.php" ;
    $Master = Skeleton::getInstance($PTR_session, $TBL_screen, $debug=true) ;
    $Master->Execute() ;
    Et ce sont les paramètres affichés à l'écran que je souhaite faire rentrer dans ma class Screen.
    Cela m'aurait arrangé si d'une classe X, je pouvais accéder à une variable externe...

    Ta solution est correcte mais tu t'imagines les 6 ou 7 variables que je te montre passées comme paramètres ?
    C'est possible, oui mais s'il y avait eu une autre méthode, je la prenais.

    Encore merci pour tout Grunk.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/08/2008, 20h04
  2. variables extern dans les classe
    Par sali lala dans le forum Eclipse
    Réponses: 1
    Dernier message: 10/04/2008, 00h21
  3. Réponses: 7
    Dernier message: 24/01/2007, 11h01
  4. Réponses: 3
    Dernier message: 12/10/2005, 10h23
  5. problème variable extern
    Par HeKaz dans le forum C
    Réponses: 14
    Dernier message: 08/01/2003, 02h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo