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}}
{{osoba styl}}
{{programowanie}}
{{słownik|[[PHP]]}}


<?php
'''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ę]].
$php = new JezykProgramowania('PHP');
while(1==1){ // póki 1 jest równe 1
play('ModaNaSukces'); // wyświetlaj modę na sukces
}
$php->skladnia(get("C++"));
if($php->artykul == "wikipedia"){
echo(file_get_contents("manual.txt"));
}elseif($php->artykul == "nonsensopedia"){
echo('php jest dziki');
}
$user = new user;
if($user->get_user()=="admin"){
$php->usun_artykul();
}elseif($user->get_user()=="user" || $user->get_user()=="guest"){
przeczytaj();
if($user->pomysl==true){
$php->edytuj_artykul();
}else{
header('Location: http://inna-strona.pl');
}
}
?>


[[Kategoria:Czysty nonsens]]
== Programowanie w PHP ==
[[Kategoria:Języki programowania]]
[[Plik:Młotek PHP.jpg|thumb|350px|Młotek zrobiony bazując na doświadczeniach z 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.


[[pt:PHP]]
<syntaxhighlight lang="php">
Nonsensopedia jest wspaniała!<br> <? // najprostsza wersja echo() – poza kodem ?>

<?
error_reporting(-9223372036854743049);
echo 'Nonsensopedia ',jest,chr(32),'wspaniała!<br>' ;
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
die ('Nonsensopedia '.jest.chr(32).'wspaniała!<br>'); # odpowiednik print, ale z nawiasami
?>
</syntaxhighlight>

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

<syntaxhighlight lang="php">
<?
function sł33t_::_fónkj1a (^^ )--
{
echo 'Nonsensopedia '.jest.chr(32).'wspaniała!<br>';
}
?>
</syntaxhighlight>
'''Parse error:''' syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '(' in '''[[:/dev/null]]''' on line '''2'''

=== Przykład 2 ===
Innym, bardziej zrozumiałym błędem jest występujący w następującej funkcji.

<syntaxhighlight lang="php">
<?
function pomnóż_przez_dwa(integer $i) {
return $i * 2;
}
echo '2 * 2 = ', pomnóż_przez_dwa(2);
?>
</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'''

== Intuicyjność ==
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ę:

<syntaxhighlight lang="php">
<?php

$tablica = array();
$tablica[3.123456] = 5;
$tablica[3.777777] = 10;

if ($tablica[3.123456] == 10) {
echo('WSZYSTKO ');
}
if ("20000000000000001" == "20000000000000000") {
echo('OŁRAJT!');
}

?>
</syntaxhighlight>

'''Wynik:''' WSZYSTKO OŁRAJT!

Mechanizm ten jest na tyle transparentny i instynktowny, że większość zagorzałych programistów PHP nawet nie wie o jego istnieniu, a mimo to z sukcesem bije rekordy pod względem ilości dodanych <del>linijek kodu</del> błędów.

== 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, 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 osobisty|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 <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>[[grawis|`]]</code> do uruchamiania zewnętrznych programów (czytaj: symulatora <code>printf</code>), ale jego też można zablokować.

== Zobacz też ==
* [[HTML]]
* [[JavaScript]]
* [[Perl]]
* [[Python]]
* [[PL/SQL]]


[[en:PHP]]
[[en:PHP]]
[[ja:PHP]]
[[fi:PHP]]
[[ko:PHP]]
[[id:PHP]]
[[pt:PHP]]
{{stopka}}
[[Kategoria:Języki programowania]]
Cc-white.svg Wszystko, co napiszesz na Nonsensopedii, zgadzasz się udostępnić na licencji cc-by-sa-3.0 i poddać moderacji.
NIE UŻYWAJ BEZ POZWOLENIA MATERIAŁÓW OBJĘTYCH PRAWEM AUTORSKIM!
Anuluj Pomoc w edycji (otwiera się w nowym oknie)
Źródło: „https://nonsa.pl/wiki/PHP