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 :

Comprendre le code [''.$MaVar.'']


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut Comprendre le code [''.$MaVar.'']
    Bonjour,

    J'ai besoin de comprendre cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST[''.$MaVar.'']) && empty($_POST[''.$MaVar.'']))
    A priori, pas de souci avec isset et empty, mais c'est plutôt [''.$MaVar.''] que je ne comprends pas.

    Quelqu'un peut me dire comment il faut le comprendre ?

    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est juste mal écrit et inutile fais juste $_POST[$MaVar], mais pas besion de faire un isset quand on fait un empty

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    écrire "".$var est simplement une très mauvaise façon de caster une variable en chaine de caractères. Pour rapppel, un cast en PHP se fait de cette façon: (type)$variable.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $a = 123;
    var_dump( (float)$a ); // affiche float 123
    var_dump( (string)$a ); // affiche string '123' (length=3)
    var_dump( (boolean)$a ); // affiche boolean true
    var_dump( (array)$a ); // affiche array (1) { 0 => int 123 }
    var_dump( (object)$a ); // affiche object(stdClass)[1] { public 'scalar' => int 123 }
    De mémoire, les types disponibles sont array, integer, float, string, boolean et object.
    Note: le cast (array) est très pratique car il permet d'éviter les erreurs sur les boucles, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $collection = 1;
     
    foreach ($collection as $value) { // Warning: Invalid argument supplied for foreach()
    	var_dump($value);
    }
     
    foreach ((array)$collection as $value) { // Pas de warning, la boucle est correctement executée
    	var_dump($value);
    }

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est même pas du cast, c'est

    rien + $var + rien

    le cast c'est "$var"

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    c'est même pas du cast, c'est

    rien + $var + rien

    le cast c'est "$var"
    Selon moi, faire <chaîne vide> concat <anything> revient à caster puisque la concaténation va obligatoirement renvoyer une chaîne, quel que soit le contenu de <anything>
    Caster avec "$var" c'est déjà plus correct mais j'ai tendance à préférer la forme explicite (string)$var, après c'est les goûts et les couleurs...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    dans tout les cas c'est caster

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $test = array('hello');
     
    var_dump(
        $test[0],
        $test['0']
    );

  7. #7
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    c'est même pas du cast, c'est

    rien + $var + rien

    le cast c'est "$var"
    Pardon mais caster c'est quoi ?

    [''.$MaVar.''] serait rien + $MaVar + rien ? Formellement, le caractère . (point) correspond à un + ?

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    caster c'est changer le type

    et oui le point c'est +, mais ca la base de PHP tout ça

  9. #9
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Le cast c'est l'opération qui consiste à changer le type d'une variable (par exemple, changer un entier en chaine de caractères). Dans les langages faiblement typés comme PHP le cast est souvent implicite, notamment lors de la concaténation, mais comme je l'ai montré plus haut, on peut l'effectuer explicitement.

    Pour la petite histoire, les détracteurs du langage PHP lui reprochent souvent l'approche typage faible car elle est la source de beaucoup d'erreurs et d'incompréhension. Et puis d'aucuns jugent que c'est pas bien propre (querelles de clocher que tout cela...)

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

Discussions similaires

  1. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Aide pour comprendre un code
    Par Spacy_green dans le forum Assembleur
    Réponses: 2
    Dernier message: 13/02/2006, 13h22
  4. Aide pour comprendre le code
    Par jfreuff dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/01/2006, 17h54
  5. Comprendre un code asm relatif aux bitmaps
    Par sorry60 dans le forum Assembleur
    Réponses: 8
    Dernier message: 20/04/2005, 21h31

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