Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Notice: Undefined index
Forum PHP.pl > Forum > Przedszkole
-junior-
Witam,
mam pytanie dotyczące bardziej eleganckiego obiektowego poradzenia sobie z "Undefined index".

Zwykle robię to tak:
CODE
if(isset($_POST['zmienna'])){$zmienna = $_POST['zmienna'];}else{$zmienna = '';}


Proszę o sugestie.

IProSoft
  1. $zmienna = ( isset( $_POST['zmienna'] ) ? $_POST['zmienna'] : '' );

Możesz też napisac np jakąś funkcję sprawdzajacą globalnie, checkPost('zmienna') która sprawdzi tablicę $_POST i ew przypisze wartość.
CuteOne
  1. class MyClass extends KeyExists implements Key, Array, String
  2. {
  3. private $_request;
  4.  
  5. public function __construct()
  6. {
  7. $this->_request = new HttpRequest();
  8. }
  9.  
  10. private function _isset($key, $array)
  11. {
  12. return isset($array[$key]);
  13. }
  14.  
  15. public function getValue($key)
  16. {
  17. if($this->_isset($key, $this->_request)) {
  18. return $this->_request[$key];
  19. }
  20. }
  21. }


A tak poważnie to
  1. $zmienna = array_key_exists('asdf', $_POST) ? $_POST['asdf'] : null;
Gość
Dziękuję Panowie za pomoc, zdecydowanie bardziej estetycznie to wygląda, nie mniej jednak dla 100 zmiennych trzeba będzie popełnić 100 linijek kodu. Ale tego pewnie za bardzo nie da się ominąć?
nolpel
Cytat(Gość @ 23.10.2013, 12:56:26 ) *
Dziękuję Panowie za pomoc, zdecydowanie bardziej estetycznie to wygląda, nie mniej jednak dla 100 zmiennych trzeba będzie popełnić 100 linijek kodu. Ale tego pewnie za bardzo nie da się ominąć?

  1. $vars = array(
  2. /* klucz => nazwa zmiennej */
  3. 'asd' => 'zmienna',
  4. 'asf' => 'zmienna2'
  5. );
  6. foreach ($vars as $k => $v)
  7. ${$v}= array_key_exists($k, $_POST) ? $_POST[$k] : null;
-Junior-
Super! Jesteście niesamowici. Bardzo, bardzo dziękuję. Pozdrawiam.
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.