Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Rodzaje błędów w PHP i ich przyczyny
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Rodzaje błędów w PHP i ich przyczyny
Technologie webowe

Rodzaje błędów w PHP i ich przyczyny

WebInside.pl
Ostatnia aktualizacja: 01.11.2004
WebInside.pl
Udostępnij
Udostępnij

Pisząc własne aplikacje trudno uniknąć pomyłek. Zdarzają się one zarówno przy krótkich jak i długich kodach. Często większość webmasterów nie zdaje sobie jednak sprawy z przyczyn owych nieprawidłowości.

Te właśnie nieprawidłowości są tematem naszych rozważań.
Człowiek to nie maszyna i może sobie pozwolić na popełnianie błędów. Należy jednak dbać oto, aby nie popełniać tych błędów zbyt dużo, a nawet starać się je, w miarę doświadczenia, likwidować.
Ów błędy możemy podzielić na kilka odrębnych kategorii, takie jak: błędy lekkie, ciężkie itp. Do pierwszego typu należeć będą głównie drobne literówki lub po prostu stosowanie niedozwolonych znaków w nieodpowiednich miejscach, np. stosowanie „ (cudzysłowie) między wyrażeniem ujętym przez dwa „ (cudzysłowie), bez poprzedzenia go lewym ukośnikiem. Drugi typ będzie już reprezentował zagadnienia dotyczące nieprawidłowej konstrukcji kodu, czyli tzw. błędy logiczne. Można by było jeszcze tak wymieniać, ale nie na tym się skupimy. Postaram się teraz wyjaśnić, co oznaczają najbardziej popularne komunikaty zawieszające poprawne wykonywanie skryptów.

Parse error
To ostrzenie zaliczane jest do błędów składniowych. Jak już wcześniej wspomniałem są to z reguły drobne literówki lub pomyłki. Z reguły wraz z komunikatem podawane są informacje dotyczące miejsca występowania niezgodności (np. ścieżka do pliku i numer linii). Podobne dane wyświetlane są wraz z innymi błędami. Powracając do omawianego typu błędu, zwróćmy uwagę na jego strukturę podaną na przykładzie:

Parse error: parse error, expecting `’,” or `’;” in http://localhost/~testy/index.php on line 9

Jak widać powyżej, w treści komunikatu podane są także przykładowe znaki, z którymi może być związany problem, co umożliwia jego szybszy rekonesans i neutralizacje.
Aby uniknąć tego typu błędów należy ustalić sobie pewną zasadę pisania kodu, która dość wyraźnie ukaże nam czy skrypt jest napisany poprawnie. Możemy, więc np. standardowo umieszczać nawiasy otwierające i zamykające w nowych rekordach, itp.

Call to undefined function
Każdy, kto uczy się języka angielskiego nie będzie miał problemu ze zrozumieniem przyczyny błędu. Oczywiście chodzi tu o wywołanie nieistniejącej funkcji. Komunikat ten pojawia się, gdy np. przekręcimy nazwę funkcji lub, czego się powinien wstydzić każdy programista, zapomnieliśmy jakową funkcję zdefiniować. Z reguły w komunikacie jest podawana nazwa funkcji, której nie można odczytać. Jak odnaleźć taką funkcję? Jeśli zawiera się ona w obszernym pliku, to najprostszym sposobem będzie skorzystanie z dowolnego edytora tekstu wyposażonego w wyszukiwarke tekstu. Znając z komunikatu nazwę błędnej funkcji, możemy ją wpisać w okienku wyszukiwania, a następnie po odnalezieniu przeanalizować sytuację i pozbyć się niezgodności.

Cannot instantiate non-existent class
Problem podobny jak powyżej. Dotyczy on wywołania nieistniejącej klasy. Jako jeden z parametrów błędu, wskazywana jest nazwa błędnej klasy. Łatwo ją zlokalizować, tak jak w poprzednim wypadku, a neutralizacja będzie polegała na sprawdzeniu czy rzeczywiście korzystaliśmy z danej klasy i czy jest ona zdeklarowana. Unikanie takich kłopotów polega głównie na rozważnym pisaniu swojego kodu.

Call to a member function on a non-object
Jeśli spróbujesz wywołać metodę jakieś klasy, która nie została przedtem zdeklarowana w ów klasie, to ujrzysz tytułowy komunikat. Należy, zatem pamiętać, z jakiej funkcji korzystamy, a jaka została zdeklarowana. Często problem ten wynika z jakiś drobnych błędów w pisowni, np. literówek. Podobnie jak w poprzednich wypadkach, w parametrze błędy podawane jest położenie wywołanej metody. Sprawdź to i usuń nieprawidłowość.

PHP Timed out!
Komunikat ten jest wyświetlany zazwyczaj, gdy czas wykonania danego skryptu w porównaniu z ustawieniami na serwerze został przekroczony. Jest to najczęściej przyczyną konstruowania długich lub bezsensownych kodów, np. pętle darzące do nieskończoności lub inne tego typu zagadnienia. Lokalizacja takich błędów jest trudna, gdyż skrypt jest wykonywany prawidłowo, zawierać może on jednak niewłaściwe, wspomniane przed chwilą, sformułowania. Neutralizacja problemu sprowadza się, zatem do analizy całego kodu lub, co czasem jest przydatniejsze, napisanie go od nowa.

Headers already sent
Korzystając z różnych funkcji, do których działania konieczna jest wymiana informacji z serwerem trzeba pilnie uważać. Jeśli skorzystamy w jednym skrypcie z kilku takich funkcji, np. przy zapisywaniu zmiennej sesyjnej, a następnie wykonamy przekierowanie za pomocą funkcji header(), to zaistnieje nam tu konflikt. Mianowicie działanie skryptów opiera się na pobieraniu informacji od użytkownika, a następnie przetwarzaniu na serwerze i wysłaniu z powrotem do przeglądarki. Jeśli dane zostaną już wysłane, to nie możemy zastosować funkcji korzystającej z przesyłania danych, gdyż nie możliwe jest podwójne załadowanie strony. Błędu tego możemy uniknąć, stosując odpowiednie funkcje do sterowania buforem danych wyjściowych. Artykuł o korzystaniu z tego typu mechanizmów opisałem już w jednym ze swoich artykułów, dostępnych tutaj.

Division by zero…
Problem ten dotyczy wymaganej w matematyce zasady. Mianowicie, chodzi o dzielenie przez zero. Każdy dobrze wie, że tego typu działanie nie istnieje. Podobnie interpretuje to komputer zwracając stosowny komunikat. Z błędem tym spotykamy się najczęściej, gdy zapisujemy nasze działania w oparciu o zmienne. Może się zdarzyć, iż wskazana zmienna przyjmie wartość pustą lub zerową, co koliduje z prawami matematyki. Aby uniknąć tego rodzaju problemów, przeanalizujmy zawsze nasz program, czy na pewno nie zajdzie okoliczność, w której może wystąpić dzielnik przyjmujący wartość zerową.

Failed to open stream
Przyczyną tego rodzaju błędu jest najczęściej próba otworzenia lub nawiązania połączenia z plikiem lub próba otworzenia katalogu, który nie istnieje. Unikanie tego problemu polega na zastosowaniu funkcji sprawdzającej czy podany plik istnieje, np. file_exists(). Są także inne sposoby, ale wszystko jak zwykle zależy od Twojej pomysłowości.

Wskazane błędy są tylko przykładowe, gdyż im bardziej się rozwija język, tym więcej powstaje nowych klas lub funkcji, a co za tym idzie wydłuża się lista związanych z nimi problemów. Zatem przyczyn błędów często należy szukać w dokumentacji wykorzystywanych zasobów. Dobrym sposobem na ich uniknięcie jest rozważne pisanie skryptów, a po wszelkich zmianach, należy je przetestować. Zapraszam także do przeczytania artykułu o problemach związanych z wykorzystywaniem funkcji obsługi bazy danych MySQL dostępnej tutaj.

Może Cię zainteresować

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

Serwer dla małej firmy – czym kierować się przy jego wyborze?

WebInside.pl 2004-11-01 2004-11-01
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Strona bogata w keywords
Następny artykuł MySQL w PHP, cz. 4
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Procesor AMD Ryzen 7
Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
Technologie
Jak przygotować sklep internetowy na automatyzację obsługi klienta?
Artykuły partnerskie
the nvidia logo is displayed on a table
Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
AI Aktualności
Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?
E-marketing
4 najczęstsze cyberzagrożenia w przemyśle
Technologie
Jak uratować zaschnięty tusz do drukarki? Skuteczne domowe sposoby i porady
Poradniki
Model 3D jako wspólne źródło danych dla projektu, produkcji i montażu
Artykuły partnerskie
Dlaczego wideo z telefonu sprzedaje na TikToku lepiej niż profesjonalne spoty?
Artykuły partnerskie
Dwa ekrany zawsze pod ręką – zalety korzystania z monitora przenośnego na co dzień
Technologie
Rola nowoczesnych technologii w procesie rehabilitacji
Artykuły partnerskie
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

5 min czytania
Technologie webowe

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

7 min czytania
MacBook Pro showing programming language
Technologie webowe

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

9 min czytania
AktualnościTechnologie webowe

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

9 min czytania
woman in black top using Surface laptop
Technologie webowe

Serwer dla małej firmy – czym kierować się przy jego wyborze?

5 min czytania
Technologie webowe

Jaki hosting wybrać pod Laravel? Kompleksowy przewodnik dla twórców aplikacji webowych

6 min czytania
programming language
Technologie webowe

Kaskadowość w CSS – wszystko, co musisz wiedzieć

7 min czytania
two women talking while looking at laptop computer
Technologie webowe

Darmowe kreatory stron WWW – stwórz swoją stronę w godzinę

14 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy

Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
  • Jak przygotować sklep internetowy na automatyzację obsługi klienta?
  • Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
  • Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?