Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Notice: Undefined index
--junior--
post
Post #1





Goście







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.

Go to the top of the page
+Quote Post
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


  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ść.

Ten post edytował IProSoft 23.10.2013, 07:45:34
Go to the top of the page
+Quote Post
CuteOne
post
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  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;


Ten post edytował CuteOne 23.10.2013, 07:46:21
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







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ąć?
Go to the top of the page
+Quote Post
nolpel
post
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.10.2013

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post
--Junior--
post
Post #6





Goście







Super! Jesteście niesamowici. Bardzo, bardzo dziękuję. Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:55