PHP: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
(nowa strona)
(nowa strona)
Linia 1: Linia 1:
{{programowanie}}
'''PHP''' - język który działa jak skrypt CGI wygląda jak skrypt CGI - ale nim nie jest!!!
'''PHP''' 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.
Jak to! się spytacie. Ano tak, bo wersja 4 jest napisana o dziwo od nowa. Twórcy wszystko jeszcze raz przepisywali (i z błędami!), zamiast zaznaczyć tekst i nacisnąć Ctrl+c a potem Ctrl+v. No tacy ludzie to jak buszmeni, ledwo umieją pisać, a się zabierają do poważnych działań.


== Programowanie w PHP ==
Z Historii wynika, że zrobienie PHP zlecił Hitler, który jako buszmen zaczął odczuwać potrzebę internetu, bo mu żona monitor zjadła, a procesor jego się wylał, bo na nim dziecko pisało swoją nogą.
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.
Ale powracając do tematu, bez PHP nie byłoby Internetu, ale Internet byłby bez PHP.

<source lang="php">
Nonsensopedia jest wspaniała!<br> <? // najprostrza wersja echo() - poza kodem ?>

<?
error_reporting(-9223372036854743049);
echo 'Nonsensopedia ',jest,chr(32),'wspaniała!<br>' ;
print 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>' ; /* jak wspomniano wyżej, używa się tu kropek nie przecinkó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
</source>

== 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 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]]. Przykład kodu poniżej zawiera błąd o którym PHP informuje.

<source lang="php">
<?
function sł33t_::_fónkj1a (^^ )--
{
echo 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>';
}
</source>

'''Parse error''': syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '( in '''/dev/null''' on line '''2'''

== 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 [[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 - 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 ==
* WordPress - ze względu na szybką konfigurację wykorzystywany do tworzenia blogów przez [[Pokemon (osoba)|nastolatki]].
* Simple Machine Forums - skrypt do tworzenia [http://www.sweetbrokacik.pl/ słit forumz]
* [[MediaWiki]] - skrypt Wiki wykorzystywany przez [[Wikipedia|Wikipedię]]

{{przypisy}}
{{stubinf}}
[[Kategoria:Języki programowania]]
[[en:PHP]]
[[ja:PHP]]
[[ko:PHP]]
[[pt:PHP]]
[[ru:PHP]]

Wersja z 11:35, 24 sie 2011

Ten artykuł jest częścią cyklu naukowego języki komputerowe.

Języki programowania:


Inne języki komputerowe:


edytuj ten szablon

PHP to wieloparadygmatowy, proceduralny i dynamiczny język programowania. Jest on rozszerzeniem C dodającym wiele nowych bezużytecznych funkcji[1], 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 protesty programistów dodano możliwość programowania obiektowego.

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 echo jest tym samym co print tyle że w echo oddzielasz wyrazy przecinkami, a w print kropkami.

Nonsensopedia jest wspaniała!<br> <? // najprostrza wersja echo() - poza kodem ?>

<?
  error_reporting(-9223372036854743049);
  echo   'Nonsensopedia ',jest,chr(32),'wspaniała!<br>' ;
  print  'Nonsensopedia '.jest.chr(32).'wspaniała!<br>' ; /* jak wspomniano wyżej, używa się tu kropek nie przecinkó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

Zwracanie błędów

Funkcja error_reporting() 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ć angielski, ale także inne języki takie jak niemiecki, francuski, japoński czy nawet hebrajski. Przykład kodu poniżej zawiera błąd o którym PHP informuje.

<?
  function sł33t_::_fónkj1a (^^ )--
  {
    echo 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>';
  }

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '( in /dev/null on line 2

Przenośność

Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami 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 magic_quotes_gpc 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ą stripslashes(), ale wtedy twój kod będzie usuwać slashe celowo wstawione w komputerach które nie mają tej opcji włączonej.

Ale to nie wszystko - można wyłączyć każdą funkcję bez problemu w konfiguracji. Nie lubisz printf - 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 ` do uruchamiania zewnętrznych programów (czytaj: symulatora printf), ale jego też można zablokować.

Znane programy napisane w PHP

  • WordPress - ze względu na szybką konfigurację wykorzystywany do tworzenia blogów przez nastolatki.
  • Simple Machine Forums - skrypt do tworzenia słit forumz
  • MediaWiki - skrypt Wiki wykorzystywany przez Wikipedię

Przypisy

Szablon:Stubinf