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 :

incrémenter décrémenter incrémenter


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 47
    Points : 23
    Points
    23
    Par défaut incrémenter décrémenter incrémenter
    Bonjour

    je suis toujours dans ma phase apprentissage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $i=5;
    echo 1+--$i+$i+++1,
    je suis surpris que cela face 10 et pas 11

    --$i -> 4
    et --$i++ -> 4 (et 5 que après ligne de code)
    1+4+4+1 = 10

    Je pensais que cela ferait 11

    --$i -> 4
    et --$i++ -> 5 car $i VAUT 5 au début de la ligne (et 6 que après ligne de code)
    1+4+5+1 = 11

    D'un autre coté si j'avais pleins de --$i et ++$i à la fin de la ligne j'aurais 50 valeurs pour la même valeur.

    Comme dans mes livres PHP pour les null le sujet se limite à ++$i -> +1 lol

    je voulais savoir si vous aviez des info pour aller plus loin ou en tous cas mieux comprendre les règles qui s'appliquent.

    OU ALORS TOUT SIMPLEMENT NE FAUT IL PAS METTRE PLUSIEURS ++$i dans une même ligne ou même au milieux d'une ligne même plus simple car c'est FAUX.

    et se limiter à l'expression la plus simple sur une ligne
    $i++;

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 123
    Points : 8 283
    Points
    8 283
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $i = 5 ;
    echo 1 + --$i + $i++ + 1 ; // 10
    Il faut calculer :

    --$i : on fait d'abord le calcul/affectation puis on utilise la valeur obtenue
    $i++ : on utilise d'abord la valeur de $i puis on fait le calcul/affectation

    http://fr2.php.net/manual/en/languag....increment.php
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 123
    Points : 8 283
    Points
    8 283
    Billets dans le blog
    17
    Par défaut
    se limiter à l'expression la plus simple sur une ligne
    Voilà
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 47
    Points : 23
    Points
    23
    Par défaut
    Est ce qu'en ressource serveur (j’emploie peut être pas les bons mots)

    Ça consomme MOINS lol

    d'écrire $num=1+2+3+4+5; que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $num=1+2;
    $num=$num+3;
    $num=$num+4;
    $num=$num+5;
    Ou c'est pareil

    la c'est simple mais dans des cas plus complexes

    c'est quoi qui compte le nombre d'action ou le nombre d’exécutions

    une exécution de 5 actions est elle égale à 5 exécutions d'une actions

    (l'action pouvant être des opérations ou des fonction (regex patin couffin...).

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 123
    Points : 8 283
    Points
    8 283
    Billets dans le blog
    17
    Par défaut
    Je pense que le 1er extrait est moins gourmand car 1 opération d'écriture (affectation)
    Le 2e extrait : 4 écritures, 3 lectures (accès aux variables)

    Après je ne sais pas comment PHP gère tout cela exactement et les différences doivent se compter en µs sur des milliers de lignes. Mieux vaut se concentrer sur l'optimisation des requêtes SQL par exemple
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. Bouton pour incrémenter ou décrémenter..
    Par MJEFF dans le forum Access
    Réponses: 6
    Dernier message: 23/05/2016, 14h57
  2. [XL-2003] incrémenter / décrémenter
    Par seblap47 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/03/2015, 21h30
  3. [XL-2010] Incrémenter décrémenter simultanément dans une boucle
    Par eliniel dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/10/2014, 10h20
  4. Numéros d'ordre à incrémenter / décrémenter
    Par Splyf dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 08/06/2009, 13h19
  5. [SQL]Incrémenter ou décrémenter dans un requete??
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/06/2005, 09h44

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