Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Błędy notice
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
toffiak
post
Post #2





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


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.

Ten post edytował toffiak 23.01.2012, 20:59:48
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.
Go to the top of the page
+Quote Post
kukix
post
Post #4





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


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']=' '; }
Go to the top of the page
+Quote Post
lobopol
post
Post #5





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Akurat nie taki (prędzej !isset), ale jeżeli chcesz gdziekolwiek używać jakiejś zmiennej, to powinna być wcześniej zadeklarowana.
Go to the top of the page
+Quote Post
cycofiasz
post
Post #6





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Też. Ja stosuję takie coś:

  1. $_POST['id'] = (isset($_POST['id']) && is_string($_POST['id'])) ? $_POST['id'] : '';
Go to the top of the page
+Quote Post
kukix
post
Post #7





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


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".
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zamykam. Poziom niższy od depresji.
Go to the top of the page
+Quote Post

Closed 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 - 12:23