Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: liczba != 'liczba', oraz jak wywolac metode w pewien sposob
Forum PHP.pl > Forum > PHP
mrWodoo
witam mam problem, mam taką oto tablicę
array( '1234', 'test' );

i chce ta tablice zamienic na liste argumentow do metody, czyli wynik pętli powinien być
1234, 'test',
ale niestety nie jest, chcę zadbać o typ danych
  1. foreach( $this->_params AS $param ) {
  2. if( intval( $param ) != $param ) {
  3. $params .= '\'' . $param . '\', ';
  4. } else {
  5. $params .= $param . ', ';
  6. }
  7. }
  8.  


nie dziala bo wszystko daje w apostrof. problem tkwi w tym, żę dla php '1234' nie jest tym samym co 1234 [sprawdza typ, ale dlaczego!!!!? przecież nie użyłem operatora identyczności [!==]

drugie pytanie

jak wywolac metode
public function metoda( $param1, $param2, $param3 ) tak, ze przekazuje jeden parametr a on sie 'rozbija' czyli
  1. $zmienna = "'parametr1', 'parametr2', 'parametr3'";
  2.  
  3. $object->$metoda( $zmienna ); // $object->$metoda( 'parametr1', 'parametr2', 'parametr3' );


nospor
zobacz dokładnie co zawiera $param
var_dump($param);
moze ukrył się tam jakiś bialy znak
mrWodoo
dobra nie będę sobie komplikował bardziej życia, dodałem drugie pytanie do 1szego postu

//dodam, że nie chciałbym korzystać z funkcji eval, chyba, że ktoś mi powie jak to dobrze zabezpieczyć, bo parametry są podawane przez użytkownika i następnie do tablicy, z tej tablicy do 'listy parametrów ($zmienna)'
Crozin
Powinieneś tutaj skorzystać z ReflectionMethod::invokeArgs.
mduke
mrWodoo odnosnie drugiego pytania najlepszym sposobem wydaje mi sie trzymac parametry w tablicy np. $params = array($param1, $param2, $param3), a pozniej odpalic to w funkcji call_user_method_array.

Tak przy okazji, jest to bardzo fajna konstrukcja do wykorzystania w kontrolerze calego projektu. Z requesta czytamy nazwe metedy i parametry, z parametrow montujemy tablice i ciach do call_user_method_array.
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.