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 :

doute sur la réponse - assignation par défaut


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut doute sur la réponse - assignation par défaut
    Bonjour,
    Petite question de syntaxe rapide

    Si j'écris ceci: $array['elem'] = (isset($array['elem']))? $array['elem'] : false;
    Est-ce correcte de dire: si $array['elem'] existe rien ne se passes sinon on met false dans $array['elem'] ?
    Ou false ne s'affichera jamais car $array['elem'] est créé par l'executable lors du l'assignation et que donc lorsqu'on fait isset() le résultat serra à chaque fois true ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    petite réponse rapide : toi qui es étudiant, tu n'es pas sans savoir que l'on n'est jamais mieux servi que par soi-même... à ton clavier moussaillon

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En un peu plus détaillé, l'opérateur ternaire, c'est un if/else condensé. Ton code $array['elem'] = (isset($array['elem']))? $array['elem'] : false; pourrait donc s'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($array['elem'])) {
        $array['elem'] = $array['elem'];
    } else {
        $array['elem'] = false;
    }
    Du coup, ce serait sans doute plus simple d'écrire simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!isset($array['elem'])) {
        $array['elem'] = false;
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Pour compléter la réponse de Celira, tu dois lire la doc sur la priorité des opérateurs par ici
    Tu y trouveras ta réponse :
    D'un autre côté, "=" est une association par la droite, ainsi, $a = $b = $c est groupé comme ceci $a = ($b = $c).
    Donc ta supposition :
    Ou false ne s'affichera jamais car $array['elem'] est créé par l'executable lors de l'assignation et que donc lorsqu'on fait isset() le résultat sera à chaque fois true ?
    est erronée, la partie à droite de l'opérateur égal sera évaluée avant et l'assignation ne se fera qu'en dernier une fois le résultat de isset($array['elem']) ? $array['elem'] : false; connu.

  5. #5
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    c'était juste pour être certain j'ai étudié l'année passé l'assembleur et donc la priorité des opperations mais j'avais oublié de réfléchir dans ce sens
    Merci

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    rassure moi, t'as quand même trouvé la réponse tout seul, non ?

    l'explication que je t'ai donnée n'était qu'un support pratique à la question théorique de ton message initial.

  7. #7
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    Pas vraiment je suis à la bourre dans mes dossiers et ayant le résultat vous je ne me suis plus trop focus la dessus.
    J'ai juste eu une alerte lors de la relecture pour optimiser mon code, c'est pour cela que je vous l'ai demandé.

    C'est n'est pas une bonne attitude mais la recherche et la réflexion demandes également du temps. Temps dont je manque pour le moment.

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

Discussions similaires

  1. Redirection sur un virtual host par défaut
    Par dede92 dans le forum Apache
    Réponses: 16
    Dernier message: 26/02/2010, 15h58
  2. imprimer un PDF sur une imprimante non par défaut
    Par bremer dans le forum Langage
    Réponses: 5
    Dernier message: 25/12/2007, 22h46
  3. PS sur tables de schémas par défaut
    Par clesaffr dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2007, 16h04
  4. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19

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