Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Informacja na temat indexu
Forum PHP.pl > Forum > PHP
Pride
Witam.
Po zmianie krasnala na "własny" serwer zacząłem się bawić w php.ini itd. Po zmianie raportowania errorów na E_ALL zaczął mi się pojawiać znany pewnie Wam error: Notice: Undefined index. Wiem, że można by to "załatwić" za pomocą usunięcia raportów o Notice, ale przecież to mija się z celem worriedsmiley.gif Można to także załatwić za pomocą isset. Jednak mam co do tego pytanie. Która z metod jest bardziej "poprawną":

  1. <?php
  2. if(isset($_GET['go']) AND $_GET['go'] == '1')
  3. {
  4. echo '111';
  5. }
  6. ?>


czy:
  1. <?php
  2. if(isset($_GET['go']))
  3. {
  4. if($_GET['go'] == '1')
  5. {
  6. echo '111';
  7. }
  8. }
  9. ?>


Chodzi mi tutaj bardzie o to, która z metod jest częściej stosowaną i bardziej polecaną? Może nie ma to aż takiego znaczenia, ale chciałbym poznać opinię kogoś bardziej doświadczonego smile.gif

Dzięki,
Pride
nowotny
W zasadzie obie są takie same... częściej chyba stosowana jest ta pierwsza bo i to mniej pisania i schludniej to wygląda... nie trzeba potem szukać po różnorakich ifach... a i nawiasy klamrowe tylko dwa i raczej nie ma możliwości żeby coś przeoczyć... winksmiley.jpg
ddiceman
Dodatkowo drugi skladnik koniunkcji nie jest sprawdzany jezeli pierwszy zwroci wartosc logiczna 'falsz' (podobnie jak z alternatywa or i wartoscia 'true'). Dlatego tez pierwszy kod nie wymaga wcale kazdorazowego sprawdzania obu warunkow i nie traci na tym wydajnosc.
Pride
No widzicie, a ja sam z siebie myślałem, że drugi kod > pierwszy smile.gif
"Kto pyta, nie błądzi."
1010
a ja bym zrobił po prostu tak:

  1. <?
  2. if($_GET['go']=='1')
  3. {
  4.  print "111";
  5. }
  6. ?>


W tym przypadku ten isset jest zbędny...


Edit... czytałem temat na szybko, a właściwie tylko jego drugą część...
Rzeczywiście jeżeli nie będzie $_GET, a wstawimy to w if'ie to wyskoczy błąd...

Sorka
wrzasq
PHP sprawdza warunki wedlug kolejnosci, wiec tak jak powiedzieli poprzednicy, pierwszy kod jest lepszy. zapewne obawiales sie, ze tak jak w niektorych innych jezykach kompilator/interpreter moze dowolnie ustawiac kolejnosci i drugi warunek bedzie sprawdzony jako pierwszy, ale w PHP tego nie ma smile.gif.
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.