Funkcja phpinfo() pozwala na
<?php, a nie wywołaniem funkcji.php.ini, rozszerzenia i zmienne serwera.var_dump() i print_r().Pytanie z egzaminu CKE, styczeń 2016 (arkusz E.14-X-16.01).
phpinfo() wyświetla stronę z informacjami o środowisku, w którym działa PHP: wersję interpretera, system operacyjny serwera, ustawienia z pliku php.ini, listę włączonych rozszerzeń (na przykład mysqli, gd) oraz zmienne serwera i środowiska. Wystarczy plik z jedną linią <?php phpinfo(); ?> otwarty przez serwer WWW.
Funkcja przydaje się przy konfiguracji, na przykład do sprawdzenia, czy rozszerzenie do bazy danych jest włączone albo który plik php.ini serwer faktycznie wczytuje. Takiego pliku nie zostawia się na serwerze produkcyjnym, bo zdradza atakującemu szczegóły konfiguracji.
Wynik jest długą stroną HTML z tabelami, więc przegląda się go w przeglądarce, wyszukując potrzebne ustawienie, na przykład upload_max_filesize.
Problem z tym pytaniem polega na tym, że wszystkie odpowiedzi dotyczą pracy z PHP. Sprawdzanie wartości zmiennych użytych w kodzie robią var_dump() i print_r(). phpinfo() nie pokazuje zmiennych skryptu, tylko konfigurację serwera i zmienne środowiskowe.
Debugowanie to praca krok po kroku z narzędziem takim jak Xdebug albo czytanie komunikatów błędów włączonych dyrektywą display_errors. Informacja z phpinfo() może pomóc w diagnozie konfiguracji, ale sama nie debuguje kodu.
Zainicjowanie kodu PHP następuje przez znacznik otwierający <?php, a nie przez wywołanie funkcji, bo żeby wywołać jakąkolwiek funkcję, kod PHP musi już działać. Właściwy opis to uzyskanie informacji o środowisku pracy serwera obsługującego PHP.
Warto zapamiętać różnicę: funkcje do diagnozy kodu pokazują dane skryptu, a phpinfo() dane środowiska, w którym ten skrypt działa. Pokrewna funkcja phpversion() zwraca samą wersję interpretera.