Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] funkcja filtrująca
Forum PHP.pl > Forum > PHP
Lejto
Napisałem funkcje która filtruje znaki
  1. function stripslashes_rcurs($variable, $top = true)
  2. {
  3.  
  4. $clean_data = array();
  5. foreach($variable as $key => $value)
  6. {
  7. $key = ($top) ? $key : stripcslashes($key);
  8. $clean_data[$key] = (is_array($value)) ? stripslashes_rcurs($value, false) : stripslashes($value);
  9. }
  10. return $clean_data;
  11. }

przy jej odpaleniu dostaje błąd
Kod
Warning: Invalid argument supplied for foreach() linia 5

czemu?

Pozdrawiam
zzeus
zmienna $variable nie jest tablicą
Lejto
rzeczywiście, pomogło

ale jeszcze kod nie zwraca wyniku ;/
thek
Lepiej zrób var_dump i zobacz co Ci zwraca. Zresztą na Twoim miejscu nieco inaczej bym zaczął. Znaczy parametr dałbym jako dowolny i dopiero wewnątrz sprawdzałbym czy jest tablicą. I na co Ci parametr top? Nie używasz go nigdzie smile.gif
  1. function stripslashes_rcurs($variable) {
  2. if( is_array( $variable ) ) {
  3. $output = array();
  4. foreach( $variable AS $key => $value ) {
  5. $output[$key] = stripslashes_rcurs($value);
  6. }
  7. return $output;
  8. } else
  9. return stripslashes($variable);
  10. }

Andrzej1884
Co oznacza w kodzie Lejto wyrażenie:

$key = ($top) jako warunek... nie moge nigdzie tego znaleźc, a gdyby było zwykłym przypisaniem to byłoby bez sensu..
by_ikar
Jest to tak zwany operator trójargumentowy, czy też jak niektórzy wolą, skrócony zapis instrukcji warunkowej. Tamtej zmiennej $top akurat nie musiał dawać w nawiasy, ale czasami się daje, żeby było to czytelniejsze. Osobiście wolę bez nawiasów, a nawiasy tylko wtedy kiedy jest potrzeba.

EDIT: tutaj masz jakiegoś linka do info: http://webinside.pl/artykul-155-operator-t...rgumentowy.html
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.