Variable Global

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 : Variable Global

par dart » 07 déc. 2005, 21:04

Bon , c'était un peu l'idée .....
Mais en fait j'avais créer mon objet dans le constructeur de la classe...
donc je devait appeller une fonction d'un objet déjà créer (et non pas créer mon objet à chaque appel de la fonction :lol: )

Neanmoins la solution proposé m'a fait comprendre ma boulette , j'instancier l'objet $base sans préciser que c'était en fait $this->base :P (j'suis tête en l'air parfois)

Merci beaucoup en tout cas.

par jeff » 07 déc. 2005, 18:48

j'ai pas tout compris mais je me lance
<?php
class pagebaseuser {
            var $Base;
            function SelectSQLPage($Requete){
$this->base=new BaseDD();
                $this->Base->SelectSQL($Requete);
        }
}
?>

par dart » 07 déc. 2005, 18:45

Ok , merci beaucoup pour vos interventions.
J'ai fait les modifications , et ça marche comme je le souhaite.
Au moins pour cette petite partie de code :lol: ....

J'ai un problème un peu similaire dans la page d'appel de la class BaseDD.
En fait je dois déclarer un objet BaseDD que j'appel dans différentes fonctions de la seconde class.
Donc je le déclare comme précédemment afin de pouvoir y accéder et faire des appels de fonctions dessus.
Voila le code (en gros je veux appeller la fonction SelectSQL() de mon objet Base sur des niveaux de visibilités différentes :P dis comme ça , ça fait peur):
<?php 
 class pagebaseuser {
            var $Base;
            function SelectSQLPage($Requete){
	            $this->Base->SelectSQL($Requete);
	    }
}
?>
Bien entendu il n'apprécie pas vraiment la double flèche (enfin je crois).
je suppose qu'il doit y avoir une syntaxe précise pour ce genre de cas.... mais j'avoue que j'ai un peu de mal à trouver dans la doc de PHP.

Quelqu'un aurait une idée ? ou mieux , quelqu'un aurais un lien vers la page php qui décris ce genre de syntaxe?

Merci d'avance.
Dart

par Xenon_54 » 07 déc. 2005, 18:00

Déjà que le code montré ne semble pas être valide...

Voici le code modifié:
<?php
class BaseDD {
    var $TypeBase;
    var $serveur="localhost";

    function Connect_MySql(){
        // Contenu
    }
}

par jeff » 07 déc. 2005, 17:50

salut
si tu est en php 5 tu pourrai utiliser une methode d'acces statique ce qui te dispenserai d'intencier ta classe a chaque fois

pour ma part j'instancie ma classe a chaque fois,c'est par terrible pour maintenir du code mais bon on arrive a vivre avec :P

Exact

par dart » 07 déc. 2005, 17:43

Oki doki ... Merci beaucoup pour la réponse.

Kels solutions pour les problèmes d'accés aux variables ???
Je fait des accesseurs pour les variables et je déclare tous en privé ???

Cordialement.

par Xenon_54 » 07 déc. 2005, 17:37

Tu déclares une propriété $serveur dans ta classe BaseDD.
Tu déclares global la variable $serveur.
L'accès aux propriétés de classe se fait ainsi: $this->serveur.

Cependant, je considère ce que tu désires faire comme une mauvaise pratique puisque n'importe qui pourra maintenant modifier la variable contenue dans ta classe. Plusieurs scripts utilisent certainement ce nom de variable et peuvent ainsi écraser la valeur qui s'y trouve.

Vaut mieux alors utiliser la bonne manière d'accès aux propriétés.

Variable Global

par dart » 07 déc. 2005, 17:31

Bonjour ,


Voila , ptit problème à la c** ....
J'ai écrit une classe php et je voudrais y déclarer une variable en global (afin de l'utiliser dans différentes fonctions)

mon code commence ainsi :

Code : Tout sélectionner

<?php class BaseDD { $TypeBase; $serveur="localhost"; function Connect_MySql(){ global $serveur; echo $serveur; } }
Dans une autre page , je créer un objet BDD , et je veux lancer ma fonction Connect_MySql() .
Malheuresement le 'echo' de ma variable globale ne fonctionne pas...

Quelqu'un peut m'expliquer pourkoi ??? J'utilise poutant la même syntaxe qu'ici... donc je ne comprends pas .

Merci d'avance