PHP/Zmienne i tablice: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Zyx (dyskusja | edycje)
m dodanie numerowania linii
Lethern (dyskusja | edycje)
popr. nawigacji, poszerzenie przykładu, uzupełnienia (częściowo)
Linia 1:
{{prognaw|PHP|[[../Pierwszy skrypt/]]|[[../Formularze/]]}}
 
== Zmienne i tablice ==
 
Linia 6 ⟶ 4:
 
=== Dane ===
PHP, jak każdy inny język programowania, operuje na danych. Niektóre z nich są zapisane na sztywno w skrypcie. Niemniej każdaKażda rzecz, która reprezentuje jakąkolwiek informację, zwana jest wyrażeniem. Oto prosty przykład:
 
8
Linia 14 ⟶ 12:
6.454
 
To jest wyrażenie reprezentujące ułamek, czyli liczbę zmiennoprzecinkową będącą komputerowym, skończonym przybliżeniem ('''nie''' wartością dokładną) liczby rzeczywistej.
 
0x6F44
Linia 25 ⟶ 23:
 
'To jest tekst bez znaków specjalnych'
"To też jest tekst, ale \t-\t ze znakami specjalnymi (tabulatorami)"
 
Powyżej mamy dwa wyrażenia reprezentujące tekst. Pomiędzy nimi istnieje istotna różnica. Apostrofy korzystają z jednego tylko znaku specjalnego: <tt>\'</tt> - pozwala on oznaczyć wewnątrz tekstu znak apostrofu. Gdybyśmy zapomnieli o poprzedzającym backslashu, PHP uznałby, że w tym momencie kończy się wyrażenie tekstowe i dalej jest już normalny skrypt.
Linia 46 ⟶ 44:
Oto backslash: \
 
Oto złożone wyrażenie (reprezentuje ono sumę dwóch mniejszych wyrażeń):
Oto bardziej skomplikowane wyrażenie:
 
5 + 7
 
ReprezentujeOto onowyrażenie sumębędące połączeniem dwóch mniejszych wyrażeń tekstowych.
 
'Tekst A '.'Tekst B'
 
OtoZnak wyrażenie będące połączeniem dwóch mniejszych wyrażeń tekstowych. Znaki kropkakropki oraz plusplusa to tzw. '''operatory'''. Wykonują one pewne operacje na dwóch innych wyrażeniach i zwracają jakąś wartość, zatem same także stają się wyrażeniem. Podobnie, jak w matematyce, obowiązuje ściśle określona kolejność ich wykonywania, a zmieniać ją możemy za pomocą nawiasów:
 
5 * (6 + 8)
Linia 70 ⟶ 68:
=== Funkcje ===
 
Informatyka wiele zawdzięcza matematyce. W programowaniu występuje wiele pojęć zaczerpniętych bezpośrednio od królowej nauk. Jednym z nich jest funkcja, do której możemy wprowadzać parametry, a w zamian otrzymujemy jakiś wynik. Poniższy skryptPoniżej będzie pierwszympierwszy "naprawdę" dynamicznym skrypt, jaki stworzymy. Skorzystamy w nim z dwóch funkcji, aby wyświetlić aktualny czas:
 
<source lang="php" line><?php
Linia 79 ⟶ 77:
</source>
 
Jak widać, składnia '''funkcji''' jest następująca: <code>nazwaFunkcji(parametry)</code>. Jeśli funkcja nie posiada parametrów, nawiasy są puste. Jeżeli jest ich więcej, niż jeden, oddzielamy je od siebie przecinkiem. Zaś sam parametr jest niczym innym, jak... pewnym wyrażeniem. JestWynik nimdziałania takżefunkcji funkcjarównież jest wyrażeniem, dlatego możemy ją wpleść w nasz tekst za pomocą operatora kropki.
 
{{Uwaga|Funkcja <code>time()</code> wyświetla czas [[w:czas uniksowy|czas uniksowy]], dlatego nie można używać tej funkcji bezpośrednio do określenia ile czasu minęło od konkretnej daty.}}
Powyższy kod zachowa się następująco:
{{Uwaga|<code>echo</code> oraz jego synonim <code>print</code> nie są funkcjami ani wyrażeniami! Są to instrukcje języka PHP i to tłumaczy, dlaczego nie musimy stosować przy nich nawiasów.}}
# Wykonana zostanie funkcja date(), przyjmująca za argument tekst 'd.m.Y', a jej wynikiem będzie aktualna data.
# Następnie powyżej opisany wynik zostanie połączony (operator .) z sąsiednimi tekstami, przez co powstanie wyrażenie np. "Dzisiaj mamy: 01.01.2010". ''Echo'' spowoduje wstawienie tego wyrażenia do kodu HTML strony wynikowej.
# Następna linijka wywoła się analogicznie, wywołanie funkcji zakończy się zwróceniem wyniku, który zostanie połączony z sąsiednimi wyrażeniami w jeden tekst.
 
{{Uwaga|Funkcja <code>time()</code> wyświetla czas [[w:czasCzas uniksowy|czas uniksowy]], dlatego nie można używać tej funkcji bezpośrednio do określenia ile czasu minęło od konkretnej daty.}}
{{Uwaga|<code>echo</code> oraz jego synonim <code>print</code> nie są funkcjami ani wyrażeniami! Są to instrukcje języka PHP i- tomają tłumaczytę cechę, dlaczegoże nie musimy stosować przy nich nawiasów.}}
 
=== Zmienne ===
Innym pojęciem matematycznym jest zmienna, reprezentującazawierająca pewną informację, przeważnie nieznanąuzyskaną w trakcie pisaniawykonywania skryptu. JestMożna totraktować ją takijako pojemnik, do którego możemybędziemy mogli w trakcie wykonywania skryptu wstawiaćwstawić wszelkiedowolną informacjeinformację, zapamiętując je w ten sposób. BezUmożliwia zmiennychto nieprzechowywanie możnai mówić o jakimkolwiek przetwarzaniuprzetwarzanie danych, ponieważw komputerpotrzebnym musinam mieć jakąś możliwość umieszczania gdzieś wyników obliczeń oraz przechowywania danychcelu.
 
KażdaKażdej zmiennazmiennej posiadaprzypisujemy własną, unikalną nazwę, która jednoznacznie ją identyfikuje. Język PHP wymaga, aby zaczynała się ona od znaku dolara, a następnie od litery lub(ew. podkreślenia). DalszeDalsza znakiczęść mogąnazwy byćmoże takżejuż cyframizawierać cyfry. MożnaStosując stosować dużewielkie litery trzeba uważać, aleponieważ dla interpretera ma toone rozróżnialne od małych, co ma istotne znaczenie. <code>$zmienna</code> i <code>$Zmienna</code> to dwie różne zmienne. Przykłady prawidłowychpoprawnych nazw zmiennych:
 
$a, $b, $foo, $_50, $_foo_Foo, $moja_zmienna, $mojaZmienna3
 
Przykłady nieprawidłowych nazw:
 
$55a, $
 
{{Infobox|PHP zezwala na używanie w nazwach zmiennych także znaków o kodach od 128 do 255, wśród których znajdują się m.in. polskie litery.}}
 
Aby przypisać wartość do zmiennej, należy ułożyć wyrażenieskorzystać z operatoremoperatora '''='''. Po lewej stronie umieszczamy naszą zmienną, a po prawej innedowolne wyrażenie określające wstawianą wartość, która zostanie zapisana w zmiennej. Oto, jak wygląda to w praktyce:
 
<source lang="php" line><?php
// inicjujemy zmienna $czas aktualnym czasem w sekundach od 1.1.1970
$czas = time();
$czas2 = $czas / 60;
 
echo 'Od 1.1.1970 minęło '.$czas.' sekund<br/>';
echo 'Od 1.1.1970 minęło '.($czas / 60)czas2.' minut<br/>';
echo 'Od 1.1.1970 minęło '.($czas / 3600).' godzin';
</source>
Linia 544 ⟶ 549:
==Przypisy==
: {{note|1}}Tak naprawdę komputer nie potrafi losować liczb. Za całą tą zasłonką kryją się różne skomplikowane wzory matematyczne inicjowane najczęściej aktualnym czasem, dające wrażenie losowości wyników.
 
<noinclude>
{{prognaw|PHP|
{{prognaw|PHP|[[../Pierwszy skrypt/]]|[[../Formularze/]]}}
[[../Formularze/]]}}
</noinclude>