Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błędy notice
Forum PHP.pl > Forum > Przedszkole
kukix
Witam.

Przeglądam swój mały skrypt i widze, że zgłasza pewne błędy NOTICE.

Np kilka tego typu.
Cytat
Notice: Undefined index: zmienna_calkowita in /home/domains/skrypt/public_html/index.php on line 162



  1. $zmienna_calkowita1_a = $_SESSION['zmienna_calkowita1'];
  2. $zmienna_calkowita2_a = $_SESSION['zmienna_calkowita2'];


Czy warto dodawać warunki tego typu?

  1. if (isset($_SESSION['zmienna_calkowita1'])) { $zmienna_calkowita1_a = $_SESSION['zmienna_calkowita1']; }
  2. if (isset($_SESSION['zmienna_calkowita2'])) { $zmienna_calkowita2_a = $_SESSION['zmienna_calkowita2']; }


Mam takich kilka przypadków.. jak to jest z wydajnością? Czy warto dawać tego typu warunki?

Proszę o odpowiedź bardziej doświadczone osoby smile.gif
toffiak
Język php jaki jest, taki jest normalnie przy próbie użycia niezadeklarowanej zmiennej powinien być wyrzucony wyjątek ale tak nie jest i parser php na siłę próbuje poprawiać błędy programisty.

Poprawa takich błędów to wymóg jeśli na poważnie chcesz zająć sie programowaniem, co do wydajności nigdy nie sprawdzałem ale jest pewnie pomijalna.
wookieb
isset jest szybsze od używania prób odwołań do nieistniejących kluczy.
Ale to i tak nieważne, narzut na wydajność jest tak znikomy, że nie tego nie odczujesz.
Poza tym NOTICE-y nie powinny występować w kodzie.
kukix
Dzieki za pomoc.

A w przypadku np użycia zmiennej w wywolaniu funkcji lub w funkcji switch($_GET['zmienna']) ?

Tez musze wcześniej za każdym razem dawac taki warunek?

  1. if (isset($_GET['zmienna'])) { $_GET['zmienna']=' '; }
lobopol
Akurat nie taki (prędzej !isset), ale jeżeli chcesz gdziekolwiek używać jakiejś zmiennej, to powinna być wcześniej zadeklarowana.
cycofiasz
Też. Ja stosuję takie coś:

  1. $_POST['id'] = (isset($_POST['id']) && is_string($_POST['id'])) ? $_POST['id'] : '';
kukix
Panowie.. a jak można wyelyminowac bląd notice z czegośc takiego?

Kod
if ($_GET['modul'] == 'koszyk' && isset($_GET['nowy'])) {//jesli wyniki
  include('koszyk.php');
  //dodajemy do koszyka
}


pokazuje mi w tej pierwszej lini komunikat "undefined index modul".
wookieb
Zamykam. Poziom niższy od depresji.
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.