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 :

Créer une fonction


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Créer une fonction
    Bonjour à tous, je suis un bleu en php et je bloque sur quelque chose.
    j'ai un code qui se répète et j'essaye de le simplifier avec une fonction mais je trouve pas la solution. mon code se répète 12 fois comme ça.
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $resultat = 23645;
    echo $resultat .'<br/>';
     
     
    $resultat = str_split($resultat);
    $resultatno = count($resultat);
    $resultat = (isset($resultat[0]) ? $resultat[0] : 1) *
    	         (isset($resultat[1]) ? $resultat[1] : 1) * 
                     (isset($resultat[2]) ? $resultat[2] : 1) *  
    	         (isset($resultat[3]) ? $resultat[3] : 1) * 
    	         (isset($resultat[4]) ? $resultat[4] : 1);
    			 {
    			 	echo $resultat . '<br/>';
    			 } 
     
     
    $resultat = str_split($resultat);
    $resultat = (isset($resultat[0]) ? $resultat[0] : 1) * 
    			 (isset($resultat[1]) ? $resultat[1] : 1) * 
    			 (isset($resultat[2]) ? $resultat[2] : 1) *  
    			 (isset($resultat[3]) ? $resultat[3] : 1) * 
    			 (isset($resultat[4]) ? $resultat[4] : 1);
    			 {
    			 	echo $resultat . '<br/>';
    			 } 
     
    $resultat = str_split($resultat);
    $resultat = (isset($resultat[0]) ? $resultat[0] : 1) * 
    			 (isset($resultat[1]) ? $resultat[1] : 1) * 
    			 (isset($resultat[2]) ? $resultat[2] : 1) *  
    			 (isset($resultat[3]) ? $resultat[3] : 1) * 
    			 (isset($resultat[4]) ? $resultat[4] : 1);
    			 {
    			 	echo $resultat . '<br/>';
    			 }

    J'aimerai savoir si c'est possible de créer une boucle,j'ai une variable $resultatno qui compte le nombre de chiffre dans le résultat et j'aimerai que si $resultatno > 1 il continue a multiplier les chiffre du résultat entre eux.
    Merci si quelqu'un peu m'aider

  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,

    tiens ton code revu et corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $v = 23645;
    echo array_product(str_split($v));  // 2x3x6x4x5 = 720
    Si j'ai bien compris ta problématique

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il doit se passer quoi quand il y a un zéro ?
    ex. 236045

    1. on obtient 0 ? (0 * n'importe quoi = 0)
    2. ou on l'ignore ? (ou on le remplace par 1, ce qui revient au même)

    Dans le 2ème cas, il faudrait utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_product( array_filter( str_split($v) ) )

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Super, Merci beaucoup la première solution me va très bien
    Pour la fonction array_filter je n'en aurait pas besoin car je veux que si multiplié par 0 sa fasse 0.
    Mais en tout cas top merci sa m'a débloqué.

    Juste du coup je remarque que si je multiplie plus de 18 chiffres entre eux sa me donne comme résultat un préfixes métriques
    heu ça se traduit comment ?

  5. #5
    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
    C'est normal, c'est pas un préfixe métrique mais une notation scientifique. Cette notation apparaît quand le calcul dépasse les limites numériques du PHP
    Une version travaillant sur n'importe quel taille d'entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $v = '236454648743131641346413164452179327835742899';
    $result = 1;
    array_map(function($p) use (&$result) { $result = gmp_mul($result, $p); }, str_split($v));
    echo $result;   // 31961311603702735306752000

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Top merci, j'avoue qu'il m'a fallu un peu de temps pour comprendre mais maintenant c'est claire

Discussions similaires

  1. Créer une fonction
    Par Jeffboj dans le forum Access
    Réponses: 7
    Dernier message: 15/04/2006, 20h49
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

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