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 :

2 fois la même variable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut 2 fois la même variable
    Bonjour,
    je sais que c'est pas possible et pourtant le var_dump de ce tableau associatif m'indique 2 éléments avec le même index...

    D'abord, j'avais
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $this->ref_App = new AP_application($this->data['sesaid'],
                $this->data['applicationname']);
    ...
    class AP_application extends JobClass
    {
       public function __construct( $sesaid, $appli_name ) 
    ...{
    et en debug dans AP_application.php, $sesaid vallait null alors que quand je fais new AP_application($this->data['sesaid'],... $this->data['sesaid'], n'est pas null. Pour être sûr, j'ai rajouté 2 lignes :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            $this->data['sesaid'] = 'SESA1234';
            UtilFct::debug("cvsimportcontroller 316 this_data",$this->data);
            $this->ref_App = new AP_application($this->data['sesaid'],
                $this->data['applicationname']);
    et $sesaid vaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    array(24) {
      ["sesaid"]=>
    string(10) "SESA100008"
      ...
      ["sesaid"]=>
      string(8) "SESA1234"
    }
    Il y a donc 2 fois le même index. Quelqu'un comprend ?

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 354
    Billets dans le blog
    17
    Par défaut
    Ce n'est pas possible.

    N'as-tu pas deux var_dump() successifs, ou deux arguments sur un var_dump() ? Ou un des deux éléments sesaid dans un sous-tableau ou dans un objet ?

    Transmet-nous le résultat complet dans un fichier

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Voici le code de ma méthode de debug :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     static public function debug($location, $var)
        {
            echo "<br/>".(is_string($location))?$location:'';//la variable $location sert à indiquer le nom
            // du fichier et le numéro de la ligne où on a appelé la fonction car quand on en a plus besoin, on sait plus où
            // on l'a placé !
            echo "<br/><pre>";
            var_dump($var);
            echo "</pre><br/>";
        }
    Il n'y a qu'un seul var_dump...

    Je donnerais un fichier pour reproduire que demain...

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    je pense que le problème se situe en amont. Donc, je suis revenu en arrière, et suis reparti sur ce code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $this->ref_App = new AP_application($this->data['sesaid'],
                $this->data['applicationname']);
    ...
    class AP_application extends JobClass
    {
       public function __construct( $sesaid, $appli_name ) 
    ...{
    Vu le message d'erreur :
    Warning: Undefined array key "sesaid" in C:\projets\ticket_rawsrc\src\controller\CSVImportController.php on line 321
    j'ai rajouté un var_dump :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var_dump($this->data);echo "<br/>";
    self::createLicensesObjects();
     
    private function createLicensesObjects()
        {
            $this->ref_App = new AP_application($this->data['sesaid'], $this->data['applicationname']);
            ...
    et
    array(23) { ["sesaid"]=> string(8) "SESA1000" ["alternateids"]=> string(6) "(none)" ["platform"]=> string(20) "Software Engineering" ["platformowner"]=> string(9) "SESA84441" ["publisher"]=> string(9) "Atlassian" ["applicationname"]=> string(20) "JIRA Global Instance" ["hfmcode"]=> string(0) "" ["currentlyactive"]=> string(4) "True" ["activatedate"]=> string(12) "Jan 01, 2021" ["deactivatedate"]=> string(0) "" ["groupname"]=> string(0) "" ["officecountry"]=> string(5) "Spain" ["firstname"]=> string(6) "Miguel" ["lastname"]=> string(4) "Abad" ["companyname"]=> string(33) "SCHNEIDER ELECTRIC ESPANA, S.A.U." ["jobcode"]=> string(4) "FKP8" ["reportingentity"]=> string(0) "" ["businessunitname"]=> string(14) "Global Finance" ["location"]=> string(23) "BARCELONA (BAC DE RODA)" ["internetaddress"]=> string(18) "mail@se.com" ["managerfirstname"]=> string(8) "Alistair" ["managerlastname"]=> string(8) "Mckelvie" ["manageremail"]=> string(24) "manager.mail@se.com" }
    Comment est-ce possible ?

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Même avis que Séb, c'est impossible. Il doit y avoir un stud' quelque part.

    Dans ta fonction createLicensesObjects, comme première ligne, fais un truc comme die(isset($this->data['sesaid']) ? 'Exist' : 'Missing')); juste histoire de voir que ta clef existe ou pas.

    Note : tu avais installé xDebug il me semble, voici un bon cas pour faire du debugging pas à pas.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 354
    Billets dans le blog
    17
    Par défaut
    J'ai ceci dans mon VSCode avec ton var_dump() :

    Nom : f443.png
Affichages : 210
Taille : 2,9 Ko

    Sur un éditeur hexadécimal :

    Nom : f443b.png
Affichages : 212
Taille : 4,0 Ko

    EF BB BF => Tu as un BOM qui traîne

    Tu dois sûrement avoir dans ton tableau une clef "{BOM}sesaid" et une autre "sesaid"

    Ceci explique cela

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/07/2012, 16h45
  2. [RegEx] extraire un nombre variable de fois le même pattern
    Par [Hugo] dans le forum Langage
    Réponses: 3
    Dernier message: 18/11/2010, 14h53
  3. Réponses: 4
    Dernier message: 04/09/2007, 08h55
  4. [Débutant - Avis] même variable dans plusieurs pages...
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/12/2004, 22h50
  5. [VB.NET] Appliquer plusieurs fois la même fonction...
    Par MiJack dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/09/2004, 10h52

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