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 :

Fonction PHP et variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut Fonction PHP et variable
    Bonsoir , j'ai un soucis avec une fonction pour laquelle on ma aidé , j'ai un soucis que je n'arrive pas à résoudre et si c'est possible.

    Cette fonction me donne le nombre de points ceci étant pour un concours de pronostics hippiques ente amis , jusqu’à ce jour cela fonctionnait parfaitement mais je désire modifier en remplaçant les points par une variables q qui contient des chiffre également correspondant a un rapport pmu.
    exemple 100 points pour un tiercé ordre , je désire remplacé le chiffre 100 par une variable contenant exemple 3341.02

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    function jeu($prono,$arrive,$jeu,$type){
     
        switch($jeu){
     
            case "tierce":
                $points_tierce_ordre =$list_quinte['Rtierce_ordre'];
     
                if(count($prono)<3) return "Vous n'avez pas assez de chevaux pour jouer au tierce";
                if(count($arrive)<3) return "Il n'y a pas assez de chevaux pour jouer au tierce";
     
                $arrive = array_slice($arrive,0,3);
     
                if($type==="ordre"||$type==="desordre"){ 
                    $prono = array_slice($prono,0,3);   
                }
                //$tierce_desordre = $list_quinte['TIERCE_DESORDRE'];
                //$points = array('ordre'=>100,'desordre'=>50,'combine'=>100/(count($prono)-2),'combineToutOrdre'=>50/(count($prono)-2));
                $points = array('ordre'=>100,'desordre'=>50,'combine'=>100,'combineToutOrdre'=>50);
                $pointJeu = $type($prono,$arrive) >= 3 ? $points[$type]  : 0; 
     
            break;
     
            case "quarte":
                if(count($prono)<4) return "Vous n'avez pas assez de chevaux pour jouer au quarte";
                if(count($arrive)<4) return "Il n'y a pas assez de chevaux pour jouer au quarte";
     
                $arrive = array_slice($arrive,0,4);
     
                if($type==="ordre"||$type==="desordre"){ 
                   $prono = array_slice($prono,0,4);   
                }
     
                //$points = array('ordre'=>200,'desordre'=>100,'combine'=>200/(count($prono)-3),'combineToutOrdre'=>100/(count($prono)-3));
                 $points = array('ordre'=>200,'desordre'=>100,'combine'=>200,'combineToutOrdre'=>100);
                $pointJeu = $type($prono,$arrive) >= 4 ? $points[$type]  : 0; 
     
            break;
     
            case "quinte":
                if(count($prono)<5) return "Vous n'avez pas assez de chevaux pour jouer au quinte";
                if(count($arrive)<5) return "Il n'y a pas assez de chevaux pour jouer au quinte";
     
                $arrive = array_slice($arrive,0,5);
     
                if($type==="ordre"||$type==="desordre"){ 
                    $prono = array_slice($prono,0,5);   
                }
     
                 $points = array('ordre'=>500,'desordre'=>250,'combine'=>500,'combineToutOrdre'=>250);
                $pointJeu = $type($prono,$arrive) >= 5 ? $points[$type]  : 0; 
     
            break;
     
        }
        return $pointJeu;
    }
    Je désire remplacé le nombre de points par une variable qui contient des rapports du pmu .

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Salut

    cette valeur, tu veux la passer au moment de l'appel de la fonction en paramètre ou elle sera codée en dur dans le corps de la fonction ?
    Ta variable $list_quinte, elle sort d'où ? Tour de magie ?
    Quelle version de PHP tu vises ?

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

    on peut commencer par factoriser :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    function jeu($prono,$arrive,$jeu,$type){
    	$pointJeu = 0;
     
        $jeux = array(
    		'tierce' => array(
    			'nbr_chx' => 3, 
    			'jeu_nom' => 'tiercé', 
    			'ordre'=>100,
    			'desordre'=>50,
    			'combine'=>100,
    			'combineToutOrdre'=>50
    		),
    		'quarte' => array(
    			'nbr_chx' => 4, 
    			'jeu_nom' => 'quarté', 
    			'ordre'=>200,
    			'desordre'=>100,
    			'combine'=>200,
    			'combineToutOrdre'=>100
    		),
    		'quinte' => array(
    			'nbr_chx' => 5, 
    			'jeu_nom' => 'quinté', 
    			'ordre'=>500,
    			'desordre'=>250,
    			'combine'=>500,
    			'combineToutOrdre'=>250
    		)
    	);
     
    	if( !empty($jeux[$jeu]) )
    	{
    		$nbr_chx = $jeux[$jeu]['nbr_chx'];
    		$jeu_nom = $jeux[$jeu]['jeu_nom'];
     
    		if(count($prono)<$nbr_chx) return "Vous n'avez pas assez de chevaux pour jouer au ".$jeu_nom;
    		if(count($arrive)<$nbr_chx) return "Il n'y a pas assez de chevaux pour jouer au ".$jeu_nom;
     
    		$arrive = array_slice($arrive,0,$nbr_chx);
     
    		if($type==="ordre"||$type==="desordre"){ 
    			$prono = array_slice($prono,0,$nbr_chx);   
    		}
     
    		$pointJeu = $type($prono,$arrive) >= $nbr_chx ? $jeux[$jeu][$type]  : 0; 
    	}
    	return $pointJeu;
    }
    Dernière modification par Invité ; 30/11/2019 à 17h49.

  4. #4
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Bonjour , merci de ta réponse

    la valeur de la variable est dans une requête , elle n'est pas vide je l'ai testée , la variable comme tu peux le ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $points_tierce_ordre =$list_quinte['Rtierce_ordre'];
    6 variables seront viendront remplacés les points que tu vois 50-100-100-200-250-500 pour chacun des rapports tiercé ordre , tiercé désordre , quarté ordre , quarté désordre , quinté ordre , quinté désordre .

    Je désirerais les placer dans le corps de la fonction puisque les points sont déjà inclus , comme tu vois ci-dessous .

    donc l'exemple ci-dessous remplacé 100 par la variable $points_tierce_ordre , et 50 $points_tierce_desordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $points = array('ordre'=>100,'desordre'=>50,'combine'=>100,'combineToutOrdre'=>50);
    J'ai essayé cela , , aucune erreur mais cela reste à 0 dans l'affichage des points
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $points = array('ordre'=>$points_tierce_ordre,'desordre'=>$points_tierce_desordre,'combine'=>$points_tierce_ordre,'combineToutOrdre'=>$points_tierce_desordre);
    Ma Version de PHP : 7.3.6

    A ce jour tout fonctionne très bien , sauf que je désire remplacé par les rapports Pmu au lieu des points , les rapports pmu contiendront certainement une virgule , cela posera t'il un problème je ne pense pas ?

    Merci d'avance , Bon We

  5. #5
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Bonjour Jreaux62 merci pour ta réponse , oui tout a fais , plus propre , est -ce que je peux ajouter une variable à la place des points comme ceux-ci ? voir Tiercé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $points_tierce_ordre =$list_quinte['Rtierce_ordre'];  // tiercé ordre
    $points_tierce_desordre =$list_quinte['Rtierce_desordre'];  // tiercé désordre
    $points_quarte_desordre =$list_quinte['Rquarte_desordre'];  // quarté désordre 
    $points_quarte_ordre =$list_quinte['Rquarte_ordre'];  // quarté ordre 
    $points_quinte_desordre =$list_quinte['rapport_desordre'];  // quinté désordre 
    $points_quinte_ordre =$list_quinte['rapport_ordre'];  // quinté ordre
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    function jeu($prono,$arrive,$jeu,$type){
    	$pointJeu = 0;
     
        $jeux = array(
    		'tierce' = array(
    			'nbr_chx' => 3, 
    			'jeu_nom' => 'tiercé', 
    			'ordre'=>$points_tierce_ordre,
    			'desordre'=>$points_tierce_desordre,
    			'combine'=>$points_tierce_ordre,
    			'combineToutOrdre'=>$points_tierce_desordre
    		),
    		'quarte' = array(
    			'nbr_chx' => 4, 
    			'jeu_nom' => 'quarté', 
    			'ordre'=>200,
    			'desordre'=>100,
    			'combine'=>200,
    			'combineToutOrdre'=>100
    		),
    		'quinte' = array(
    			'nbr_chx' => 5, 
    			'jeu_nom' => 'quinté', 
    			'ordre'=>500,
    			'desordre'=>250,
    			'combine'=>500,
    			'combineToutOrdre'=>250
    		)
    	);
     
    	if( !empty($jeux[$jeu]) )
    	{
    		$nbr_chx = $jeux[$jeu]['nbr_chx'];
    		$jeu_nom = $jeux[$jeu]['jeu_nom'];
     
    		if(count($prono)<$nbr_chx) return "Vous n'avez pas assez de chevaux pour jouer au ".$jeu_nom;
    		if(count($arrive)<$nbr_chx) return "Il n'y a pas assez de chevaux pour jouer au ".$jeu_nom;
     
    		$arrive = array_slice($arrive,0,$nbr_chx);
     
    		if($type==="ordre"||$type==="desordre"){ 
    			$prono = array_slice($prono,0,$nbr_chx);   
    		}
     
    		$pointJeu = $type($prono,$arrive) >= $nbr_chx ? $jeux[$jeu][$type]  : 0; 
    	}
    	return $pointJeu;
    }
    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    1- Ce qu'a voulu dire rawsrc, c'est que la variable $list_quinte n'est pas définie dans la fonction.
    Il faut la passer en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function jeu($prono,$arrive,$jeu,$type,$list_quinte)
    {
    2- Il suffit de tester
    Dernière modification par rawsrc ; 30/11/2019 à 12h39.

  7. #7
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Merci je vais tester , j'avais déjà fais mais une erreur en mettant non pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function jeu($prono,$arrive,$jeu,$type,$list_quinte)
    {
    mais pour chaque rapport

    merci

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Michel6359 Voir le message
    les rapports pmu contiendront certainement une virgule
    aurais-tu un exemple de rapport PMU ?

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

Discussions similaires

  1. Appel de fonctions php par variable
    Par WagaSeb dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2007, 12h06
  2. [PHP-JS] Variable PHP comme argument dans l'appel d'une fonction Javascript
    Par The Molo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2007, 10h00
  3. [PHP-JS] Variables PHP comme paramètre de fonction Js
    Par johandev dans le forum Langage
    Réponses: 3
    Dernier message: 21/12/2006, 13h03
  4. Réponses: 18
    Dernier message: 27/10/2006, 15h15
  5. Problème de variable lors d'1 appel de fonction PHP
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 14/02/2006, 18h49

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