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 :

Opérateur sur les variables


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut Opérateur sur les variables
    Bonjour,

    Depuis quelque temps je suis tombé sur un opérateur que je n'avais jamais vu et je ne trouve pas ce qu'il signifie sur internet.

    Si quelqu'un ici est capable de me donner la signification de ceci, j'en serais ravi :

    $var_1 = $var_2 ? $var_3 : $var_4

    Je vous remerci d'avance pour vos reponses

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633

  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
    La syntaxe A?B:C est appelée opération ternaire et correspond à une boucle if/else

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = (condition)?(valeur1):(valeur2) ;
    équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (condition) 
      $var = valeur1 ;
    else
      $var = valeur2 ;
    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
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup pour vos reponses , j'ai un peut regardé c'est effectivement utile.

    Au final j'ai retenu ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var_1 = var_2 si var_2 == var_3
    var_1 = var_3 si var_2 != var_3
    var_1 = var_4 si var_2 n'est pas defini
    
    je parle pour ce code là :
    $var_1 = $var_2 ? $var_3 : $var_4
    je passe le topic en resolu

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    Citation Envoyé par HuZimA Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var_1 = var_2 si var_2 == var_3
    var_1 = var_3 si var_2 != var_3
    var_1 = var_4 si var_2 n'est pas defini
    
    je parle pour ce code là :
    $var_1 = $var_2 ? $var_3 : $var_4
    non ce n'est pas du tout ça, regarde l'exemple que Celira a mis

  6. #6
    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 fait, ton exemple n'est pas correct (en tout cas, de mon point de vue) Il faut que ce que tu as appelé $var2 soit une condition, quelque chose du genre a==b
    Pour faire ce que tu dis, il faudrait un code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var1 = ($var2 == $var3) ? $var2 : $var3
    ce qui équivaut à dire :
    var_1 = var_2 si var_2 == var_3
    var_1 = var_3 si var_2 != var_3
    C'est plus clair ?
    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]

  7. #7
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    j'ai mis ça puiqu'en essayant j'ai obtenu ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $var_1 = "premier";
    $var_2 = "deuxieme";
    $var_3 = "deuxieme";
    $var_4 = "quatrieme";
    $var_1 = $var_2 ? $var_3 : $var_4;
    echo $var_1;
    ?>
    me retourne : "deuxieme"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $var_1 = "premier";
    $var_2 = "deuxieme";
    $var_3 = "troisieme";
    $var_4 = "quatrieme";
    $var_1 = $var_2 ? $var_3 : $var_4;
    echo $var_1;
    ?>
    me retourne : "troisieme"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $var_1 = "premier";
    $var_2 = "";
    $var_3 = "troisieme";
    $var_4 = "quatrieme";
    $var_1 = $var_2 ? $var_3 : $var_4;
    echo $var_1;
    ?>
    me retourne : "quatrieme"


    Ce n'etait donc juste pour ça que j'avais repondu ça à la fin ^^, apres je m'exprime peut être mal, ou peut être est ce une aberation de php, je sais pas, mais les fait sont là ^^.

    bisard cette histoire xD, peut être qu'un autre pourra verifier chez lui est confirmer ou refuter ce que je viens de dire

  8. #8
    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 fait, le problème est que tu utilises une variable contenant une chaine de caractère comme condition. Par principe, une chaine de caractère non vide (différente de "") équivaut à un booléen true. (cf les comparaisons de type)

    Donc dans tes 2 premiers exemples, la condition est vraie, donc var1 = var3, alors que dans le 3e la condition est fausse, donc var1 = var4
    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]

  9. #9
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    ok, ok ^^

    merci pour la precision .

    en fait j'avais vu ce bout de code dans joomla, fichier
    com_content->controller.php

    ou il est utilisé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row->created_by = $row->created_by ? $row->created_by : $user->get('id');
    visiblement ils s'en servent de la façon dont j'avais cru comprendre le fonctionnement (si $row->created_by est defini tant mieu, sinon aller rechercher le nom à l'id x) puisqu'il s'agit de chaine et de plus les deux premieres variables apres l'égalité sont en fait la même variable .

    Je pense que le sujet et clos now, non?

    PS : je comprend pas l'editeur du forum transforme mon clavier en "querty" alors que c'est un "azerty" et qu'en dehors du forum je suis en "azerty" xD (et ce que depuis l'edition de ce message à 14h03)

  10. #10
    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
    Dans ton exemple, je pense qu'ils vérifient que $row->create_by existe. Si elle n'existe pas la condition n'est pas validée et on la crée en y affectant $user->get('id')

    Si tout est claire pour toi, on peut effectivement marquer le sujet
    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]

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/10/2006, 22h12
  2. Question sur les variables passées par URL
    Par cotlod dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2006, 00h04
  3. [TP] Question sur les variables
    Par argon dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 16/02/2006, 07h27
  4. [Sécurité] conseil sur les variables de session
    Par grinder59 dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2006, 21h05
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59

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