Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]eval błedne prasowanie
Forum PHP.pl > Forum > Przedszkole
tejek
Witam,

Mam problem z tym kawałkiem kodu:
  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  2. eval($element);


nie wiem czemu eval wyrzuca mi blad jak wedlug mnie nawiasy sa ok

Bład jaki otrzymuje:
Parse error: syntax error, unexpected '[' in /... / : eval()'d code on line 1
mls
  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'($details['.$option['user_detail_opt_id'].']);';
  2. eval($element);
phpion
Kod:
  1. $option = array(
  2. 'data_type' => 'Test',
  3. 'user_detail_opt_id' => 1
  4. );
  5.  
  6. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  7.  
  8. echo $element;

wypisze:
Kod
new Zend_Form_Element_Test(details[1]);

Nadal uważasz, że jest to poprawne? smile.gif

Poza tym przydałoby się chyba przypisać tworzony obiekt do jakiejś zmiennej, czyli:
  1. $element = '$obj = new Zend...';
Daimos
Cytat(tejek @ 16.12.2010, 11:32:34 ) *
Witam,

Mam problem z tym kawałkiem kodu:
  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  2. eval($element);


nie wiem czemu eval wyrzuca mi blad jak wedlug mnie nawiasy sa ok

Bład jaki otrzymuje:
Parse error: syntax error, unexpected '[' in /... / : eval()'d code on line 1

Nie lepiej tak?
  1. $k = "Zend_Cos";
  2. $y = new $k();
zordon
  1. $element = 'new Zend_Form_Element_'.addslashes($option['data_type']).'($details[\''.addslashes($option['user_detail_opt_id']).'\']);';


nie dałeś dolara przy nazwie zmiennej $details
dodatkowo - brak cudzysłowów w nazwie klucza $details - murowany notice //edit założyłem, że klucz jest asocjacyjny smile.gif jeśli numeryczny to ok
dodatkowo2 - bezpieczniej byłoby dla Ciebie, gdybyś wstawiał zmienne w kod za pomocą addslashes, jak w zmiennej będzie kiedyś coś "niewygodnego" to wywali błędy
tejek
Wielkie dzięki za pomoc już po problemie :]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.