eval

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : eval

Re: eval

par stopher » 03 mai 2010, 07:52

d'ailleurs en fait pourquoi on parle de $$ ca marche pas dans son cas
Exacte :oops: , c'est une erreur de ma part .. :-)

Me suis un peu .. ( Beaucoup ) mélangé les pinceaux ...

Re: eval

par niuxe » 02 mai 2010, 23:55

Et l'eau,

C'est bien ce qu'il me semblait qu'il vaut mieux éviter le eval. Merci Stopher. Tu confirmes ce que je pensais. Néanmoins, lorsque j'ai écrit cette ligne de code, j'ai eu un doute.
d'ailleurs en fait pourquoi on parle de $$ ca marche pas dans son cas
Ce week end, je n'ai pas eu trop le temps de me replonger dans le code (erf, un petit visuel sous Inkscape). Lorsque j'ai lu le principe de variable variable, je me suis demandé si ça aller fonctionner ou trouver une astuce pour arriver au même résultat.

Egalement, merci Nagol pour ton intervention. Cependant, je ne prendrais pas ta méthodologie puisque en amont dans mon code je fais une vérification sur le fichier en lui même. S'il ne trouve pas -> exception. Aussi, s'il ne trouve pas une méthode dans le fichier pointé (if(!methode_exists($instance,$method)...) -> Exception. Ma peur était est ce que ce genre de code est/sera compatible. Apparemment, c'est le cas.

En tout cas un grand merci à vous deux. Au plaisir de vous lire ^^

Re: eval

par Nagol » 02 mai 2010, 19:40

oui le plus correct c'est un truc du genre:
if(class_exists($class)) {
	$obj = new $class();
}
d'ailleurs en fait pourquoi on parle de $$ ca marche pas dans son cas

Re: eval

par stopher » 02 mai 2010, 09:38

Ok je vois ,

Disons donc qu'il faut tester d'une maniére ou d'une autre cette variable , afin d'éviter les bugs possibles , par exemple , dans son cas , ( instancier un classe dont le nom est variable ) , une vérification auparavant avec class_exists() me semble correcte .
qu'en penses tu ?

ch.

Re:

par Nagol » 02 mai 2010, 09:29

Arf ... 8-|

Pourquoi et comment faire dans ce cas ?
pourquoi:

Parceque $$ ca revient à faire <insert bug here>, c'est trés facile de ne pas avoir sa variable déclarée correctement, de plus c'est peu lisible quand on revient farfouiller dans ce genre de codes des mois plus tard on se mord les doigts d'avoir codé ça comme ça :)

Comment faire:

un array, des issets, mais ca dépend de son besoin qui est pas super évident au vu du premier post :)

par stopher » 01 mai 2010, 21:52

Arf ... 8-|

Pourquoi et comment faire dans ce cas ?

Re: eval

par Nagol » 01 mai 2010, 19:45

Slt ,

tout simplement :
$instance = new $$objet();
pour expliquer , si $objet a pour valeur : "Maclasse" , celà reviendra à faire
$instance = new Maclasse();
eval() est à bannir tant que tu peux ..

Ch.
et les $$ tout autant, quoi que tu veuilles faire, ca n'est certainement pas la bonne manière

Re: eval

par stopher » 01 mai 2010, 10:06

Slt ,

tout simplement :
$instance = new $$objet();
pour expliquer , si $objet a pour valeur : "Maclasse" , celà reviendra à faire
$instance = new Maclasse();
eval() est à bannir tant que tu peux ..

Ch.

eval

par niuxe » 01 mai 2010, 09:42

Et l'eau tout le monde,

Je suis en train de créer le moteur de mon application. Cependant, je me pose une question suite à une ligne de code.
Bien que les deux lignes fonctionnent en local, je me demande laquelle est préférable (sécurité/compatibilité) ?
eval ("\$instance = new $objet();");
ou plus simplement :
$instance = new $objet();
Par avance, merci de vous pencher sur mon petit soucis.

Bonne journée à vous.