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 :

Variables et fonctions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut Variables et fonctions
    Bonjour, j'ai un probleme qui je suis sur est stupide, mais ne trouvant pas la solution j'ai besoin d'avoir vous .

    J'ai fais un fichier functions.php

    ou dedans se trouve toutes les var que je nécéssite pour mes fonctions telles que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    //Variables
     
    //Information serveur
    $var1 = blabla;
    etc...
    bref, mes variables.
    Et direct aprés j'ai mes fonctions telles que :

    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
    //Création du socket / Connection au serveur distant
    function connect ($port){
    	$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    	if ($socket === false)
    	{
    		echo "Error(1) : " . socket_strerror(socket_last_error()) . "<br/>\n";
    	} else {
    	    echo "OK.<br/>\n";
    	}
     
    	echo "Connexion sur '$address' en cours via le port '$port'...";
    	$result = socket_connect($socket, $address, $port);
    	if ($result === false)
    	{
        	echo "connection failed(2).\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "<br/>\n";
    	} else {
    	    echo "OK.<br/>\n";
    	}
    }
    //Envoi des données
    function send($sdata){
    etc......

    Donc mon souci est que mes variables déclarée en premier lieu ne sont pas prises en compte dans mes fonctions, et donc quand j'include mon functions.php dans les pages nécéssitantes, il me dit que mes variables ne sont pas déclarées.

    Une idée de pourquoi mes variables ne sont pas prises en compte?
    Apparement il n'a pas envie de prendre en compte des variables éxterne à ma fonction .

    Merci d'avance pour votre aide, votre indulgence et votre patience .

  2. #2
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Pour utiliser $var1 dans une fonction, il faudra l'utiliser comme cela :
    function foo () {
    global $var1. $bar;
    echo $var1.$bar
    }

    C'est comme ca qu'on commence a n'utiliser que des tableaux, puis des objets ...

  3. #3
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut sécurité
    Il y a un problème de sécurité dans ta façon de faire. Soit tes variables ont toujours les mêmes valeurs et dans ces conditions mieux vaut les transformer en constantes,
    soit effectivement elles peuvent changer et tu crées une classe Config.php dans lesquelles tu déclares tes variables en private (si tu es en PHP5) et tu les récupères avec des fonctions. exemple

    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
    class ClassConfig {
        // Définitions des variables de classe
        private $_server = 'server';    // Serveur SQL
        private $_user = 'user';        // Utilisateur SQL
        private $_password = 'pass';    // Password SQL
        private $_dbname = 'dbname';        // Nom de la BDD PostgreSQL
     
        // Définitions des tables MySQL
        private $_prefix0 = '';        // préfixe des tables MySQL
     
        /** Définition des méthodes, et méthodes magiques **/
     
        // Constructeur
        public function __construct(){}
     
        // Destructeur
        public function __destruct(){}
     
        public function getSQLServer(){
            return $this->_server;
        }
     
        public function getSQLUser(){
            return $this->_user;
        }
     
        public function getSQLPassword(){
            return $this->_password;
        }
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    En éffet ce sont des variables constantes (cherchez l'erreur ).
    Bref je vais passer sa en constantes.

    Mais pour les quelques variables qui restent de véritables variables , je les utilise dans plusieurs fonctions différentes et donc il faut vraiment que je puisse les mettre à l'éxtérieur de mes fonctions non ?
    (Donc il faudrai utiliser des classes, je m'y atele tout de suite )
    Afin de pouvoir les récuperer facilement.

    Merci.

  5. #5
    Membre éclairé Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Par défaut
    Citation Envoyé par devoluti0n
    je les utilise dans plusieurs fonctions différentes et donc il faut vraiment que je puisse les mettre à l'extérieur de mes fonctions non ?
    (Donc il faudrai utiliser des classes, je m'y atèle tout de suite )
    Faux, utiliser des variables externes dans le corps d'une fonction ne necessite pas forcement de programmation objet, regarde plutôt la solution de is_null.

  6. #6
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Citation Envoyé par is_null
    Pour utiliser $var1 dans une fonction, il faudra l'utiliser comme cela :
    function foo () {
    global $var1. $bar;
    echo $var1.$bar
    }
    Hehe ...
    Au fait David, je te conseille de lire ca

  7. #7
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut
    Citation Envoyé par is_null Voir le message
    Hehe ...
    Au fait David, je te conseille de lire ca
    Ouais, j'avais pas lu. Mais c'est comme ça que je fais de toute façon, comme quoi... après avoir lu des milliers de pages de books et pages web, la logique fini par suivre

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    Citation Envoyé par is_null Voir le message
    Pour utiliser $var1 dans une fonction, il faudra l'utiliser comme cela :
    function foo () {
    global $var1. $bar;
    echo $var1.$bar
    }

    C'est comme ca qu'on commence a n'utiliser que des tableaux, puis des objets ...
    Okay ^^, mais je n'ai pas trop réagi car je ne comprends pas ce qu'est $bar.

  9. #9
    Membre éclairé Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Par défaut
    $bar est une variable qui sert ici juste pour t'expliquer comment t'y prendre. En gros l'exemple de is_null() pouvait tout aussi bien etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function foo () 
    {
        global $var1;
        echo $var1;
    }

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    Ah oé ok d'accord .....
    donc je met cete fonction avant mes autres fonctions c'est bien sa ? et je l'appele avant d'appeler mes autres fonctions ?

  11. #11
    Membre éclairé Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Par défaut
    Non. Au début de la fonction ou tu veux utiliser $var1, tu mets la ligne :
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function connect ($port)
    {
        global $var1;
     
        Code de ta fonction;
    }

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

Discussions similaires

  1. Problème d'appels d'une variable entre fonctions
    Par julien.nasser dans le forum MFC
    Réponses: 12
    Dernier message: 26/04/2006, 09h23
  2. Réponses: 4
    Dernier message: 16/02/2006, 10h40
  3. Réponses: 6
    Dernier message: 06/01/2006, 20h55
  4. "class" vector à indice variable et fonction membr
    Par icetechnik dans le forum C++
    Réponses: 14
    Dernier message: 25/11/2005, 23h46
  5. changer et afficher une variable en fonction d'un select
    Par psychoBob dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 22/11/2005, 08h15

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