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 :

valeur d'une variable disparait


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Points : 82
    Points
    82
    Par défaut valeur d'une variable disparait
    Bonjour à tous,

    Je rencontre un phénomène bizarre dont je n'arrive pas à comprendre le problème.

    J'ai une fonction contenu dans une class dont j'ai volontaire simplifier le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	public function sorders($bpid, $limit, $ordsta, $dlvsta) {
     
    		echo 'id '.$bpid.'<br />';
    		echo 'limit '.$limit.'<br />';
    		echo 'ordsta '.$ordsta.'<br />';
    		echo 'dlvstat '.$dlvsta.'<br />';
      	}
    Je l'appel via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->sorders($value[0], $value[1], $value[2], $value[3]);
    les variables sont issue de get au niveau de l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value = explode('|', $_GET['v']);
    J'ai volontairement enlevé le nettoyage de GET pour simplifier et comprendre.

    L'URL a cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static18/portail/download/&p=export&a=sorders&v=10205|10|1,2|1,2,3
    Maintenant le problème

    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
    echo 'get : '.$_GET['v'];
    get : 10205|10|1,2|1,2,3
     
    print_r($value);
    Array ( [0] => 10205 [1] => 10 [2] => 1,2 [3] => 1,2,3 )
     
    // j'appelle ma fonction
    $this->sorders($value[0], $value[1], $value[2], $value[3]);
    echo 'id '.$bpid.'<br />';
    echo 'limit '.$limit.'<br />';
    echo 'ordstat '.$ordsta.'<br />';
    echo 'dlvstat '.$dlvsta.'<br />';
     
    id 10205
    limit 10
    ordstat 1
    dlvstat 2
    Pour ordstat et dlvstat il me garde uniquement le 1 et 2. Autant 1 je comprend c'est la première valeur de $ordstat qu'il considère comme un tableau car ayant la forme x, y, z (pourquoi pas). Mais 2 pour $dlvstat je vois d'où il le sort.

    Avez-vous une idée ou une piste ?
    Merci d'avance.

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Il y a quelque-chose d'autre dans ton code qui fait que tes valeurs avec virgules sont transformées en entier (intval ?).
    Parce que le code que tu montres produit bien le bon résultat.
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
                        $_GET['v'] = '10205|10|1,2|1,2,3';
                        $value = explode('|', $_GET['v']);
                        var_dump($value[0]);
                        var_dump($value[1]);
                        var_dump($value[2]);
                        var_dump($value[3]);
                        ?>
    Affiche bien ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(5) "10205" string(2) "10" string(3) "1,2" string(5) "1,2,3"

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Réponses: 2
    Dernier message: 16/08/2005, 09h43
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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