Edytujesz „PHP”
Z Nonsensopedii, polskiej encyklopedii humoru
Uwaga: Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli zalogujesz się lub utworzysz konto, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Ta edycja może zostać anulowana. Porównaj ukazane poniżej różnice między wersjami, a następnie zapisz zmiany.
Aktualna wersja | Twój tekst | ||
Linia 1: | Linia 1: | ||
{{ |
{{programowanie}} |
||
{{t}}to wieloparadygmatowy, proceduralny i dynamiczny język programowania. Jest on rozszerzeniem [[C (język programowania)|C]] dodającym wiele nowych bezużytecznych funkcji<ref>[http://www.php.net/quickref.php Lista funkcji PHP]</ref>, pozwalającym na tworzenie stron internetowych i pozbywającego go preprocesora. Ze względu na dużą popularność, trudno znaleźć [[serwer]] nie obsługujący PHP. Praktycznie nie stosowany na normalnych komputerach. Ostatnio ze względy na [[protest]]y [[programista|programistów]] dodano możliwość programowania obiektowego. |
|||
⚫ | |||
'''PHP''' – język wywołujący u [[Programista|programistów]] wychowanych na językach z typowaniem statycznym popłoch, [[Panika|panikę]], a w skrajnych przypadkach nawet zbiorową [[Histeria|histerię]]. |
|||
== Programowanie w PHP == |
== Programowanie w PHP == |
||
⚫ | Programowanie w PHP jest bardzo proste ze względu na olbrzymią liczbę funkcji. Dla przykładu, jeśli chcesz napisać "[[Nonsensopedia]] jest wspaniała!" możesz to zrobić na wiele różnych sposobów. Funkcje są często bardzo podobne, na przykład <code>echo</code> jest tym samym co <code>print</code> tyle że w <code>echo</code> oddzielasz wyrazy przecinkami, a w <code>print</code> kropkami. |
||
⚫ | |||
⚫ | Programowanie w PHP jest bardzo proste ze względu na olbrzymią liczbę funkcji. Dla przykładu, jeśli chcesz napisać |
||
< |
<source lang="php"> |
||
Nonsensopedia jest wspaniała!<br> <? // najprostsza wersja echo() |
Nonsensopedia jest wspaniała!<br> <? // najprostsza wersja echo() - poza kodem ?> |
||
<? |
<? |
||
error_reporting(-9223372036854743049); |
error_reporting(-9223372036854743049); |
||
echo 'Nonsensopedia ',jest,chr(32),'wspaniała!<br>' ; |
echo 'Nonsensopedia ',jest,chr(32),'wspaniała!<br>' ; |
||
print 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>' ; /* używa się tu kropek |
print 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>' ; /* używa się tu kropek nie przecinków */ |
||
printf('Nonsensopedia '.jest.chr(32).'wspaniała!<br>'); // funkcja przeniesiona z C, wymaga nawiasów |
printf('Nonsensopedia '.jest.chr(32).'wspaniała!<br>'); // funkcja przeniesiona z C, wymaga nawiasów |
||
die ('Nonsensopedia '.jest.chr(32).'wspaniała!<br>'); # odpowiednik print, ale z nawiasami |
die ('Nonsensopedia '.jest.chr(32).'wspaniała!<br>'); # odpowiednik print, ale z nawiasami |
||
?> |
?> |
||
</source> |
|||
</syntaxhighlight> |
|||
== Zwracanie błędów == |
== Zwracanie błędów == |
||
Funkcja <code>error_reporting()</code> ustawia poziom informacji o błędach. Jak łatwo się domyślić, poziom -9223372036854743049 znaczy że PHP powinien informować o wszystkich błędach, z wyjątkiem tych które mogłyby zmniejszyć kompatybilność z C (jak na przykład używanie |
Funkcja <code>error_reporting()</code> ustawia poziom informacji o błędach. Jak łatwo się domyślić, poziom -9223372036854743049 znaczy że PHP powinien informować o wszystkich błędach, z wyjątkiem tych które mogłyby zmniejszyć kompatybilność z C (jak na przykład używanie nie zaicjalizowanych zmiennych). Aby PHP informował o wszystkich błędach, nawet tych wprowadzonych w przyszłości trzeba użyć 9223372036854775807. |
||
PHP jest znany z pomocnych komunikatów błędów, które wymagają bycia poliglotą. Nie dość że trzeba znać [[Język angielski|angielski]], ale także inne języki takie jak [[Język niemiecki|niemiecki]], [[Język francuski|francuski]], [[Język japoński|japoński]] czy nawet [[Język hebrajski|hebrajski]]. |
PHP jest znany z pomocnych komunikatów błędów, które wymagają bycia poliglotą. Nie dość że trzeba znać [[Język angielski|angielski]], ale także inne języki takie jak [[Język niemiecki|niemiecki]], [[Język francuski|francuski]], [[Język japoński|japoński]] czy nawet [[Język hebrajski|hebrajski]]. |
||
=== Przykład 1 === |
=== Przykład 1 === |
||
Przykład kodu poniżej zawiera błąd o którym PHP informuje. |
Przykład kodu poniżej zawiera błąd o którym PHP informuje. |
||
< |
<source lang="php"> |
||
<? |
<? |
||
function sł33t_::_fónkj1a (^^ )-- |
function sł33t_::_fónkj1a (^^ )-- |
||
Linia 34: | Linia 33: | ||
} |
} |
||
?> |
?> |
||
</source> |
|||
</syntaxhighlight> |
|||
'''Parse error:''' syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '(' in ''' |
'''Parse error:''' syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '(' in '''/dev/null''' on line '''2''' |
||
=== Przykład 2 === |
=== Przykład 2 === |
||
Innym, bardziej zrozumiałym błędem jest występujący w następującej funkcji. |
Innym, bardziej zrozumiałym błędem jest występujący w następującej funkcji. |
||
< |
<source lang="php"> |
||
<? |
<? |
||
function pomnóż_przez_dwa(integer $i) { |
function pomnóż_przez_dwa(integer $i) { |
||
Linia 47: | Linia 47: | ||
echo '2 * 2 = ', pomnóż_przez_dwa(2); |
echo '2 * 2 = ', pomnóż_przez_dwa(2); |
||
?> |
?> |
||
</source> |
|||
</syntaxhighlight> |
|||
2 * 2 = '''PHP Catchable fatal error:''' Argument 1 passed to pomnóż_przez_dwa() must be an instance of integer, integer given, called in /dev/null on line 5 and defined in '''/dev/null''' on line '''2''' |
2 * 2 = '''PHP Catchable fatal error:''' Argument 1 passed to pomnóż_przez_dwa() must be an instance of integer, integer given, called in /dev/null on line 5 and defined in '''/dev/null''' on line '''2''' |
||
Linia 53: | Linia 53: | ||
PHP jest znany ze swojej nieziemskiej intuicyjności, dzięki czemu programista przesiadający się z innego języka może wręcz natychmiast zacząć tworzyć niezwykle kreatywne i niespotykane nigdzie indziej bugi i problemy. Na szczególną uwagę zasługuje mechanizm ''żonglerki błędami'' (ang. type juggling), który pozwala programiście w prosty i wygodny sposób dodać do swojej aplikacji kilka luk bezpieczeństwa. Przykładowy kod wykorzystujący wspomnianą funkcję: |
PHP jest znany ze swojej nieziemskiej intuicyjności, dzięki czemu programista przesiadający się z innego języka może wręcz natychmiast zacząć tworzyć niezwykle kreatywne i niespotykane nigdzie indziej bugi i problemy. Na szczególną uwagę zasługuje mechanizm ''żonglerki błędami'' (ang. type juggling), który pozwala programiście w prosty i wygodny sposób dodać do swojej aplikacji kilka luk bezpieczeństwa. Przykładowy kod wykorzystujący wspomnianą funkcję: |
||
< |
<source lang="php"> |
||
<?php |
<?php |
||
Linia 69: | Linia 69: | ||
?> |
?> |
||
</source> |
|||
</syntaxhighlight> |
|||
'''Wynik:''' WSZYSTKO OŁRAJT! |
'''Wynik:''' WSZYSTKO OŁRAJT! |
||
Linia 76: | Linia 76: | ||
== Przenośność == |
== Przenośność == |
||
Niektóre języki programowania, na przykład [[C Sharp|C#]] są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami [[Windows Vista|Visty]] jest wiele warta). PHP idzie o krok dalej. Kod zachowuje się inaczej w zależności od konfiguracji PHP, więc nawet między systemami możesz się spodziewać trochę innego zachowania kodu. Na przykład, opcja <code>magic_quotes_gpc</code> dostawia slashe do danych użytkownika |
Niektóre języki programowania, na przykład [[C Sharp|C#]] są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami [[Microsoft Windows Vista|Visty]] jest wiele warta). PHP idzie o krok dalej. Kod zachowuje się inaczej w zależności od konfiguracji PHP, więc nawet między systemami możesz się spodziewać trochę innego zachowania kodu. Na przykład, opcja <code>magic_quotes_gpc</code> dostawia slashe do danych użytkownika ponieważ według autorów PHP im więcej slashy tym lepiej. Oczywiście można je usunąć funkcją <code>stripslashes()</code>, ale wtedy twój kod będzie usuwać slashe celowo wstawione w [[komputer]]ach które nie mają tej opcji włączonej. |
||
Ale to nie wszystko |
Ale to nie wszystko - można wyłączyć każdą funkcję bez problemu w konfiguracji. Nie lubisz <code>printf</code> - nie ma sprawy, zmień jedną linijkę w konfiguracji. To co że zewnętrzny kod używający jej nie będzie działać. Oczywiście jeśli tego nie lubisz możesz użyć znaku <code>[[`]]</code> do uruchamiania zewnętrznych programów (czytaj: symulatora <code>printf</code>), ale jego też można zablokować. |
||
== Znane programy napisane w PHP == |
|||
== Zobacz też == |
|||
* '''WordPress''' – ze względu na szybką konfigurację wykorzystywany do tworzenia blogów przez [[Pokemon (osoba)|nastolatki]]. |
|||
* [[HTML]] |
|||
* '''Simple Machine Forums''' – skrypt do tworzenia [http://www.sweetbrokacik.pl/ słit forumz]. |
|||
* [[JavaScript]] |
|||
* '''MediaWiki''' – skrypt Wiki wykorzystywany przez [[Wikipedia|Wikipedię]]. |
|||
* [[Perl]] |
|||
* [[Python]] |
|||
* [[PL/SQL]] |
|||
{{przypisy}} |
|||
⚫ | |||
[[en:PHP]] |
[[en:PHP]] |
||
[[ja:PHP]] |
[[ja:PHP]] |
||
[[ko:PHP]] |
[[ko:PHP]] |
||
[[pt:PHP]] |
[[pt:PHP]] |
||
[[ru:PHP]] |
|||
{{stopka}} |
|||
⚫ |