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

PHP & Base de données Discussion :

Déclaration de variables


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut Déclaration de variables
    Bonjour à toutes et tous

    Toujours dans la fameuse conversion php5 --> php7
    Avec une bonne dose de certitude, peut-on me dire s'il est préférable (pour : rapidité d'exécution, ergonomie, facilité d'encodage ... ou autre popotte) de déclarer toutes les variables dans le fichier de config (qui peuvent être nombreuses), qui passe partout, sous une forme telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable1 = ""; $variable2=""; $variable3=0; ...
    sachant que .. ou plutôt .. pensant savoir que si l'on repasse par l'index (qui include config.php) on risque de tout réinitialiser ... à moins de mettre include_once ??? pour ne pas mettre le why avec les sessions et autres ... ou require ??

    ou juste dans les pages concernées avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!isset ($variable1)){$variable1="";}
    Cette question est en relation avec le fameux message "Notice : Undefined Variable ..." qui , en php5 n'apparaissait pas ..
    Merci


    On peut très bien vivre sans la moindre espèce de culture.
    Pierre Desproges

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 700
    Par défaut
    Citation Envoyé par mauyebo Voir le message
    Cette question est en relation avec le fameux message "Notice : Undefined Variable ..." qui , en php5 n'apparaissait pas ..
    en PHP 5 ou 7, il est possible de cacher ou afficher ces messages.
    c'est recommandé de l'activer pendant le développement pour détecter une possible erreur de logique. et ensuite cet affichage peut être caché sur le serveur de production :
    https://php.developpez.com/faq/?page..._cachererreurs

    en ce qui concerne votre question, la question est de savoir dans votre exemple, est ce que la variable "variable1" non définie à un sens particulier dans votre code ?

  3. #3
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut
    oui, j'ai vu que l'on pouvait activer ou non display_errors dans la config , si c'est bien de ça dont vous parlez
    je ne suis pas sûr d'avoir compris la question "sens particulier"
    hormis certaines, comme les variables de session, la plupart de mes variables changent en cours de visite suivant les retours des boites de dialogue ou cases à cocher ou autres .

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Je ne comprends pas votre question... Lorsque vous souhaitez accéder à une variable (disons $arr['firstname']), vous devez avoir la certitude que cette variable existe. Si elle manque, très probablement, il y a un souci dans la logique métier de votre programme. Dans l'exemple que je donne, est-il normal que la variable prénom soit manquante ? Il me semble que son absence devrait interpelle "Oups, il y a quelque chose de pas très normal..."

    Maintenant, si "Oh c'est pas très grave si la variable manque", vous pouvez aller faire quelque chose echo $arr['firstname'] ?? '' pour donner un exemple. L'utilisation du ?? va permettre de mentionner "Si pas présent, pas grave, utilise la valeur (chaine vide) comme valeur par défaut".

    Perso, je code avec toutes les erreurs affichées (notice, warning, ...); je veux absolument tout capturer et gérer. Si vous ne le faites pas, vous vous exposez à des bugs futurs.

    Bonne journée.

  5. #5
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut
    bonjour
    merci de vous intéresser à mon problème .

    qui est , à la base, la modification des scripts d'un site que j'ai développé (avec l'aide d'un programmeur expérimenté), il y a 12 ans , en php5 qui ne nécessitait pas de déclarer les variables avant de les créer . Avec php7, une variable qui n'a pas été déclarée ou créée provoque un message d'erreur.
    Exemple avec le prénom , s'il n'était pas renseigné dans le formulaire , il n'était pas nécessaire de déclarer une chaine vide
    bonne journée également

  6. #6
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Salut

    J'avais compris ton souci (les NOTICE). Note que tu te trompes en mentionnant qu'avec PHP 5.x il n'était pas nécessaire de déclarer les variables avant de les utiliser. Ce que tu rencontres actuellement existait déjà càd que si tu fais un echo $firstname avant d'avoir initialisé la variable, cela générera une NOTICE.

    Sous PHP 5.x, c'était déjà le cas, mais probablement tu ne le voyais pas (car les NOTICE ne sont pas affichées par défaut), mais bien écrites dans le fichier error.log généré par PHP. Même comportement avec PHP 7.x.

    Pour revenir à ton problème : echo $firstname ?? 'John'; va afficher 'John' dès lors que $firstname a une valeur nulle (ou n'a pas été déclaré).

    Pour revenir à ce que je voulais dire : dans un code, il est rare de ne pas se soucier de savoir si une variable existe ou pas. Si tu fais un truc comme echo $arr['firstname']; c'est que tu t'attendais (en principe) à trouver un prénom et donc, si tu ne l'as pas reçu; c'est peut-être un problème plus important (comme un formulaire qui n'avait pas prévu cette zone et du coup tes visiteurs ne peuvent jamais y indiquer un prénom). Ce que je voulais mentionner c'est que si une variable était attendue et non présente; peut-être ne faut-il pas chercher à "cacher" l'erreur, mais bien à en comprendre l'origine.

    Bonne soirée.

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

Discussions similaires

  1. déclaration de variable public
    Par mathieu57 dans le forum MFC
    Réponses: 5
    Dernier message: 15/09/2005, 17h36
  2. [DB2] Ordre de déclaration des variables
    Par Fatah93 dans le forum DB2
    Réponses: 1
    Dernier message: 04/05/2005, 17h18
  3. déclaration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    Réponses: 10
    Dernier message: 30/12/2004, 22h33
  4. [FLASH MX2004] Déclaration de variables sous flash mx
    Par softyClochette dans le forum Flash
    Réponses: 4
    Dernier message: 29/11/2004, 16h11
  5. [debutant][Portée] Déclaration de variable .....
    Par Slein dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 10h43

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