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 :

Concaténation ne fonctionne pas dans __toString


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 577
    Points : 803
    Points
    803
    Par défaut Concaténation ne fonctionne pas dans __toString
    Bonjour,

    J'ai une classe OptListOption qui comme son nom l'indique sert à créer les options d'une liste. Ma méthode toString ne donne pas le résultat escompté, pourtant les éléments constitutifs sont bons. Il y a sûrement une erreur qui devrait me sauter aux yeux mais je ne la trouve pas.
    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
    	public function __toString() {
    		$strAttributes = ' ';
    		foreach ($this->attributes as $attrName=>$attrValue) {
    			$strAttributes .= "$attrName=>'$attrValue'"; 
    		}
    		var_dump($this->value);
    		var_dump(rtrim($strAttributes));
    		var_dump($this->text);
    		return sprintf(
    			'<option%s%s>%s</option>',
    			sprintf(
    				" value='%s'", $this->value),
    				rtrim($strAttributes),
    				$this->text
    			);
    	}
    La série de var_dump() donne ceci:
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:128:string '' (length=0)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:129:string ' label=>'toto'' (length=14)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:130:string '' (length=0)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:128:string 'id1' (length=3)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:129:string ' selected=>'selected'' (length=21)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:130:string 'choix 1' (length=7)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:128:string 'id2' (length=3)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:129:string '' (length=0)
    C:\wamp64\www\hotels\classes\moimp\OptListOption.php:130:string 'choix 2' (length=7)
    Lorsqu'il y a un attribut, le texte de la liste d'options contient l'attribut dans le texte comme ceci:
    'selected'>choix 1

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 577
    Points : 803
    Points
    803
    Par défaut
    Je me réponds à moi-même. J'ai une erreur à la ligne 4 '=>' au lieu de '='. J'ai également simplifié la valeur de retour avec un seul sprintf().

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2006, 17h46
  2. [FTP] fopen qui ne fonctionne pas dans tous les contextes ..
    Par Christophe Charron dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2006, 10h25
  3. Réponses: 3
    Dernier message: 26/01/2006, 13h11
  4. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46
  5. Réponses: 1
    Dernier message: 27/10/2005, 21h48

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