Zastosowanie zmiennych i stałych
Podczas tych zajęć usystematyzujemy wiadomości o zmiennych i stałych pod kątem ich stosowania w skryptach PHP.
Przygotowanie pliku testowego
Mamy już przygotowany "zestaw" plików (formularz.html oraz wyniki.php) do testowania przetwarzania danych wysłanych formularzem. Zwróćmy jednak uwagę na to, że każdy plik z rozszerzeniem .php, umieszczony na serwerze jest sprawdzany przez oprogramowanie serwera. Jeżeli w pliku takim, znajduje się skrypt PHP, to zostanie on przetworzony przez interpreter. Do sprawdzania prostych kodów PHP, możemy więc posługiwać się pojedynczym plikiem *.php.
Ćwiczenie 1_6_0_1. Przygotowanie pliku do testowania skryptów PHP
Utwórz plik skrypty_php.php wg następującego kodu:
<!doctype html>
<html>
<head>
<title>Testowanie skryptów PHP</title>
<meta charset="UTF-8" />
</head>
<body>
<?php
?>
</body>
</html>
Zauważyłeś coś? Oczywiście, ten plik jest identyczny jak plik wyniki.php. Dla porządku, będziemy go stosować wtedy, gdy nie będziemy odbierać danych formularza. Jak będzie wyglądać testowanie skryptu PHP?
- Otwieramy plik skrypty_php.php.
- Piszemy odpowiedni kod PHP wewnątrz
<?php
oraz?>
. - Zapisujemy plik jako xampp/htdocs/moje_nazwisko_bez_ogonkow/cwicz_nr/cwicz_nr.php
- Otwieramy przeglądarkę
- W pasku adresu przeglądatki wpisujemy localhost/moje_nazwisko_bez_ogonkow/cwicz_nr/cwicz_nr.php.
- Otwieramy stronę, która pokazuje efekt działania skryptu PHP.
Stosowanie komentarzy
Każdy język programowania umożliwia pisanie komentarzy. Tekst komentarza jest widoczny w kodzie źródłowym, natomiast nie jest pokazywany podczas wykonywania programu. Zaleca się pisanie krótkich, zwięzłych komentarzy informujących autora (ja na przykład mam pamięć dobrą ale krótką) jak również innych programistów, jakie znaczenie mają wybrane, kluczowe fragmenty kodu. Najpierw, musimy poinformować interpreter, że w danym miejscu kodu zaczyna się komentarz, który nie może być przetwarzany:
//...........
komentarz jednowierzowy, piszemy podwójny prawy ukośnik i komentarz.
/*
................
................
................
*/
komentarz wielowierszowy, piszemy pomiędzy znakami gwiazdki i prawego ukośnika.
Ćwiczenie 1_6_0_2. Stosowanie komentarzy
Przetestuj skrypt PHP, pokazany w poniższym kodzie:
<!doctype html>
<html>
<head>
<title>Testowanie skryptów PHP</title>
<meta charset="UTF-8" />
</head>
<body>
<?php
$a=3;//to jest komentarz jednowierszowy
$b=$a;
/* to jest komentarz
wielowierszowy
*/
$c=5;
echo $a+$b+$c; echo '<br />';
//to też jest komentarz jednowierszowy ?> ten tekst jest widoczny bo jest poza obszarem skryptu
</body>
</html>
Tutaj znajduje się plik z poprawnie napisanym skryptem. Zwróć uwagę, że pomimo iż wszystko co na prawo od //
powinno być niewidoczne, jako komentarz, to jednak ?>
zakończyło działanie skryptu i pozostały tekst został wyświetlony, ponieważ znalazł się poza skryptem.
Podczas następnych ćwiczeń, nie będzie pokazywany cały kod HTML, a jedynie srypt PHP.
Inicjowanie zmiennych
Zmienną w PHP tworzymy "w locie", tworzymy ją w kodzie poprzez istrukcję przypisania, bez wstępnego definiowania typu. Zakwalifikowanie zmiennej do określonego typu, odbywa się automatycznie. Mało tego, w jednym skrypcie zmienna może nawet przyjmować różne typy. W związku tym programista może mieć wątpliwości jaki typ, w danym miejscu kodu, przechowuje zmienna. Do sprawdzenia aktualnego typu zmiennej służą m. in. funkcje:
is_integer($zmienna)
,
is_string($zmienna)
.
Znów musimy wybiec trochę do przodu, następujący kod:
if (is_integer($zmienna)) echo '$zmienna jest typu integer'; else
if (is_string($zmienna)) echo '$zmienna jest typu string';
można odczytać jako:
jeżeli $zmienna jest typu integer, to napisz '$zmienna jest typu integer', w przeciwnym razie,
jeżeli $zmienna jest typu string, to napisz '$zmienna jest typu string'
Ćwiczenie 1_6_0_3. Inicjowanie zmiennych
Przetestuj następujący skrypt PHP:
<?php
//Zakładamy, że zmienna $a będzie typu integer lub typu string
$a=3;//od tej chwili $a przechowuje wartość typu integer;
if (is_integer($a)) echo '$a jest typu integer'; else
if (is_string($a)) echo '$a jest typu string';//sprawdzamy typ zmiennej $a
echo '<br />'; //nowy wiersz
$a='Ala ma kota';//od tej chwili $a przechowuje wartość typu string;
if (is_integer($a)) echo '$a jest typu integer'; else
if (is_string($a)) echo '$a jest typu string';//ponownie sprawdzamy typ zmiennej $a
?>
Tutaj znajduje się plik z poprawnie napisanym skryptem. Zwróć uwagę, że zmienna $a
, początkowo jest typem integer
, zaś pod koniec typem string
.
Łańcuchy znaków
Z języka polskiego znacie np. znaki interpunkcyjne: kropka, przecinek, średnik, itp. Omawiając typ string
, również mówimy o znakach, ale w innym znaczeniu. Znakami są symbole graficzne, które możemy napisać, ale są również tzw. białe znaki jak np. znak końca wiersza. Część znaków znajduje się na klawiaturze i tymi znakami będziemy się najczęściej posługiwać. Ponieważ mówimy o ciągu lub łańcuchu znaków, to mamy na myśli znaki pisane jeden za drugim. Przykłady łańcuchów: 'as12B'
, '12'
, 'asd mm'
, 'Ala ma kota'
, '^&$23#@'
, itd. Przypominam, że $a='12';
znaczy co innego jak $a=12;
W pierwszym przypadku przypisaliśmy wartość zmiennej typu string
, natomiast w drugim typu integer
.
W PHP znaki apostrofów (pojedyncza kreseczka) oznaczają co innego jak znaki cudzysłowia. Pisząc te drugie, dajemy polecenie interpreterowi, aby przeanalizował zawartość objętą tymi znakami.
Do łączenia łańcuchów znaków, stosuje się znak kropki.
Ćwiczenie 1_6_0_4. Łańcuchy znaków
Przetestuj następujący skrypt PHP:
<?php
$s1='Jak będę systematycznie pracował';
$s2=', to będę miał wyniki';
$s3=$s1.$s2;//łączymy stringi za pomocą znaku kropki
echo $s3;
echo '<br />';
echo '<br />';
$a=2;
$b=3;
echo '$a+$b'; echo '<br />';
echo "$a+$b";//cudzysłów nakazuje interpreterowi analizę zawartości
?>
Tutaj znajduje się plik z poprawnie napisanym skryptem. Zwróć uwagę na łączenie łańcuchów za pomocą znaku kropki oraz na sposób interpretowania zapisu w apostrofach i znakach cudzysłowia.
Rzutowanie typów
Rzutowanie, to zmiana jednego typu w inny, przy czym zmienna "rzutowana" typu nie zmienia. Pokażemy, to w ćwiczeniu.
Ćwiczenie 1_6_0_5. Rzutowanie typów
Przetestuj następujący skrypt PHP:
<?php
$a_s='2';//$a_s jest typu string
$b_s='4';//$b_s jest typu string
$a_int=(int)$a_s;//rzutowanie typu string na integer, $a_int jest typu integer
$b_int=(int)$b_s;//rzutowanie typu string na integer, $b_int jest typu integer
$suma=$a_int+$b_int;
echo $a_s.'+'.$b_s.'='.(string)$suma;//rzutowanie integer na string;
?>
Tutaj znajduje się plik z poprawnie napisanym skryptem. Zwróć uwagę na rzutowanie typów oraz na łączenie łańcuchów za pomocą znaku kropki.
Deklarowanie i używanie stałych
Przypomnimy sobie sens wprowadzenia pojęcia stałej. Najkrócej można powiedzieć, że stała przechowuje wartość przypisaną jej podczas deklarowania. Wartości tej nie można zmienić. Stałą deklaruje się na początku skryptu w sposób następujący:
define('NAZWA', wartość);
Jak widzimy, nazwy zmiennych piszemy dużymi literami (taka konwencja), bez znaku dolara na początku.
Ćwiczenie 1_6_0_6. Deklaracja stałej
Przetestuj następujący skrypt PHP:
<?php
define('STALA', 20);
$a=2;
$suma=$a+STALA;
echo $suma;
?>
Tutaj znajduje się plik z poprawnie napisanym skryptem. W tak krótkim skrypcie zastosowanie stałej nie ma za bardzo sensu, ale w skomplikowanych skryptach ewentualną zmianę wartości stałej musielibyśmy wykonać tylko jeden raz - w miejscu jej deklaracji.
Praca domowa
Wykonaj ponownie ćwiczenia z zajęć, podając tym razem własne przykłady.