Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2008, 14h27   #1
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
Par défaut [POO] Interpréter une chaine

Bonjour je vais faire court, je viens d'implementer un objet qui a pour but de sortir un tableau avec navigation à partir d'un tableau d'objets (un peu comme les displayTag en Java).
Je passe donc a ma méthode un tableau d'objets, et un tableau ou se trouve les informations du décorateur (balise, méthode a appelé dans chaque cellule etc...)

Mon probleme c'est que cela m'affiche la synthaxe dans chaque cellules:

exemple:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<table>
//$objet est la variable dans laquelle un foreach place l'objet
<tr>
  <td>$objet->getId();<td>
  <td>$objet->getName();<td>
</tr>
<tr>
  <td>$objet->getId();<td>
  <td>$objet->getName();<td>
</tr>
</table>
En somme il me retourne la synthaxe mais ne l'interprete pas...
Quelqu'un à une astuce?
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 14h32   #2
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
salut, tu peux donner un bout de code ?

et puis dans la volé un petit affichage de ce que tu as et ensuite de ce que tu voudrais. ça fait pas "court" mais c'est plus simple et plus rapide pour nous
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 14h37   #3
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour

Tu ne peux pas mélanger le code php et le code html : soit tu "cites" le code html dans un echo à l'intérieur des balises <?php ?>, soit tu ouvres et tu fermes les balises pour isoler le code php
Code php :
1
2
3
4
 echo '<tr>
  <td>'.$objet->getId().'<td>
  <td>'.$objet->getName().'<td>
</tr>' ;
Code html :
1
2
3
4
<tr>
  <td><?php $objet->getId(); ?><td>
  <td><?php $objet->getName(); ?><td>
</tr>
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 14h38   #4
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Woow

j'ai même pas vu

à moins que cela ne soit un oublie sur le forum ?
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 14h57   #5
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
Par défaut Le code plus tard

Je vous donnerais le code plus tard je ne l'ai pas sur le poste du boulot.
pourquoi il n'y'a pas de balise <?php ?> :

la boucle parcours l'objet de cette manière (attention ce n'est pas le code exact puisque je parcours normalement 2 tableaux un dans lequel se trouve les objets, l'autre dans le quelle se trouve les tag et les méthodes):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
$output="<table>";
 
foreach($tableauObjet as $objet){
  //getId() est une chaine en provenance du tableau comportant $tables et méthodes
  $output.="<tr><td>$object->getId()</td></tr>";
}
$output.="</table>";
 
echo $output;
?>
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 15h02   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Ah en fait, ce n'est pas le même problème.
Ce qu'il faut que tu fasses c'est sortir les variables des chaines de caractères pour qu'elles soient interprétées.
Code :
$output.="<tr><td>".$object->getId()."</td></tr>";
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 15h17   #7
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
Par défaut si seulement

en fait le probleme c'est que la partie est un string qui provient d'un tableau...
Vois tu ce que j'essaye de faire?
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 15h31   #8
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
tu veux dire que tu as deux boucles imbriquées ? et qu'en fait ce que tu écris ce n'est pas $objet->getId() mais quelque chose du genre $objet.$tab[1] ?
Chuis pas sûre que ce soit possible... peut-être avec des variables dynamiques, mais j'en doute
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 15h40   #9
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
c'est exactement ca, enfin bon si ce n'est pas possible je vais faire en sorte que tout mes objet qui veulent etre publiés par ma classe d'affichage implemente un méthode toArray() qui retournera un tableau associatif de valeur de l'objet et bon dans ce cas ca sera plus simple...

Sinon il existe pas une fonction ou méthode en php genre execString() ou un truc du genre? ca serait puissant!

Sinon est ce qu'il y a moyen de tester si une classe implèmente bien une méthode?
histoire que je puisse éléver une erreure si la méthode toArray() n'existe pas dans l'objet...
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 16h24   #10
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Citation:
Envoyé par chriscoolletoubibe Voir le message
Sinon il existe pas une fonction ou méthode en php genre execString() ou un truc du genre? ca serait puissant!
eval() ?

http://fr.php.net/manual/fr/function.eval.php
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2008, 16h32   #11
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
Par défaut Merci!

C'est cool!
Je savais pas qu'elle existait aussi en php, j'ai même pas penser a regarder!
Je pense que je devrais pouvoir regler mon problème grace à elle!

Merci beaucoup!!!
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 13h33   #12
Membre régulier
 
Avatar de chriscoolletoubibe
 
Christophe Fischbach
Inscription : novembre 2006
Messages : 151
Détails du profil
Informations personnelles :
Nom : Christophe Fischbach
Âge : 28

Informations forums :
Inscription : novembre 2006
Messages : 151
Points : 96
Points : 96
En fait eval() ne marche pas cependant la fonction php call_user_func()
fait l'affaire
chriscoolletoubibe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h10.


 
 
 
 
Partenaires

Hébergement Web