3. PHP – zmienne, stałe, typy danych i operatory


ZDEFINIOWANIE ZMIENNYCH

Zmienna, to nic innego jak kontener przechowujący w sobie pewną wartość, którą można „podmieniać” w trakcie realizacji skryptu.

W celu zdefiniowania zmiennej w języku php, należy użyć znaku $, a następnie podać nazwę zmiennej np. $zmienna, $suma itd.

Podczas tworzenia nazw zmiennych powinniśmy przestrzegać pewnych zasad:

  • nazwa zmiennej nie może rozpoczynać się od cyfry
  • nie powinna zawierać polskich znaków
  • w nazwie nie umieszczamy spacji
  • używamy tylko liter, cyfr i znaków podkreślnika
  • rozróżniana jest wielkość liter

Przykład deklaracji zmiennych:

$a = 10;
$b = 3;

Jak możemy zauważyć – nie trzeba deklarować typu zmiennej! PHP sam identyfikuje typ zmiennej, w zależności od jej zawartości.

STAŁE

Stała, to kontener przechowujący wartość, która jest niezmienna w trakcie realizacji skryptu.

W odróżnieniu od zmiennej, stałą należy zdefiniować, a jej nazwę podajemy drukowanymi literami:

define(’NAZWA_STALEJ’, wartość_stałej);

WYŚWIETLANIE ZMIENNYCH I STAŁYCH

W celu wyświetlenia zmiennej i/lub stałej wystarczy użyć instrukcji echo:

$zmienna = "Ala";
echo $zmienna;

define('STALA', "kota");
echo STALA;

STOSOWANIE OPERATORÓW

OPERATORY ARYTMETYCZNE

dodawanie: $a + $b = 10 + 3 = 13
odejmowanie: $a – $b = 10 – 3 = 7
mnożenie: $a * $b = 10 * 3 = 30
dzielenie: $a / $b = 10 / 3 = 3.3333333333333
dzielenie modulo: $a % $b = 10 % 3 = 1
potęgowanie: $a ** $b = 10 ** 3 = 1000
negacja: -$a = -10

OPERATOR PRZYPISANIA

przypisanie: $c = 5

ŁĄCZONE OPERATORY PRZYPISANIA

$c = 12;
$d = 6;

$c += $d to jest to samo co $c = $c + $d, czyli 12 + 6 = 18
$c -= $d to jest to samo co $c = $c – $d, czyli 12 – 6=6
$c *= $d to jest to samo co $c = $c * $d, czyli 12 * 6=72
$c /= $d to jest to samo co $c = $c / $d, czyli 12 / 6=2
$c %= $d to jest to samo co $c = $c % $d, czyli 12 % 6=0

PRE- I POSTINKREMENTACJA ORAZ DEKREMENTACJA

zadeklarowaliśmy zmienną $e = 5

$e++ = 5 (oczekujemy 5, ponieważ najpierw jest zwracana zmienna, a później zwiększana, zmiana nastąpi dopiero po zakończeniu instrukcji echo)
$e wynosi teraz 6 (funkcja echo sie zakończyła, więc otrzymujemy powiększoną zmienną)

zadeklarowaliśmy zmienną $f = 7

++$f = 8(oczekujemy 8, ponieważ najpierw jest zwiększana zmienna, a później zwracana jej wartość)

zadeklarowaliśmy zmienną $g = 6

$g-- = 6;

(oczekujemy 6, ponieważ najpierw jest zwracana zmienna, a później zmniejszana, zmiana nastąpi dopiero po zakończeniu instrukcji echo)
$g wynosi teraz 5 (funkcja echo sie zakończyła, więc otrzymujemy pomniejszoną zmienną)

zadeklarowaliśmy zmienną $h = 8

--$h = 7

(oczekujemy 7, ponieważ najpierw jest zmniejszana zmienna, a później zwracana jej wartość)

OPERATORY ŁĄCZENIA CIĄGÓW

łączenie ciągów: $a . $b = 10 . 3 = 103

$c .= $d to jest to samo co $c = $c . $d, czyli 12 . 6=126

$a.=" to jest dalsza część zmiennej";

wyświetli: 10 to jest dalsza część zmiennej

OPERATORY PORÓWNANIA

$a==$b sprawdza czy są takie same i zwraca wartość true lub false, czyli 10 == 3 zwraca false

$a===$b sprawdza czy są identyczne (czyli takie same + taki sam typ zmiennej) i zwraca wartość true lub false, czyli 10 === 3 zwraca false

$a!=$b sprawdza czy są różne i zwraca wartość true lub false, czyli 10 != 3 zwraca true

$a<>$b sprawdza czy są różne i zwraca wartość true lub false, czyli 10 <> 3 zwraca true

$a!==$b sprawdza czy nie są identyczne (czyli takie same + taki sam typ zmiennej) i zwraca wartość true lub false, czyli 10 !== 3 zwraca true

$a>$b sprawdza czy $a jest większe od $b i zwraca wartość true lub false, czyli 10 > 3 zwraca true

$a<$b sprawdza czy $a jest mniejsze od $b i zwraca wartość true lub false, czyli 10 < 3 zwraca false

$a>=$b sprawdza czy $a jest większe lub równe $b i zwraca wartość true lub false, czyli 10 >= 3 zwraca true

$a<=$b sprawdza czy $a jest mniejsze lub równe $b i zwraca wartość true lub false, czyli 10 <= 3 zwraca false

OPERATORY LOGICZNE

if($a < 10 and $b != 2) oba warunki muszą być spełnione, zwraca true lub false, czyli if(10 < 10 and 2 != 2) zwraca false

if($a == 7 && $b == 2) oba warunki muszą być spełnione, zwraca true lub false, czyli if(10 == 7 && 2 == 2) zwraca false

if($a >= 5 or $b > 7) jeden lub oba warunki są spełnione, zwraca true lub false, czyli if(10 >= 5 or 2 > 7) zwraca true

if(10 == 5 || 2 > 6) jeden lub oba warunki są spełnione, zwraca true lub false, czyli if(10 == 5 || 2 > 6) zwraca false

if($a == 5 xor $b == 3) tylko jeden z warunków musi być spełniony, ale nie oba, zwraca true lub false, czyli if(10 == 5 xor 2 == 3) zwraca false

if($a == 5 ^ $b == 3) tylko jeden z warunków musi być spełniony, ale nie oba, zwraca true lub false, czyli if(10 == 5 ^ 2 == 3) zwraca false

if(!(10 == 8)) zaprzeczenie, zwraca true lub false, czyli if(!(10 == 8)) zwraca true

OPERATOR REFERENCJI – &

//operacje na wartościach - bez referencji
$a = 5;
$b = $a; //$b jest kopią $a
$a = 7;//nie zmienia to wartości $b

$a przechowuje 7, $b przechowuje 5

//zastosowanie operatora referencji
$a = 5;
$b = &$a; //$b wskazuje na ten sam adres pamięci co $a
$a = 7; //zmieniając $a zmieniamy wartość $b

$a przechowuje 7, $b przechowuje 7

OPERATOR TRÓJKOWY

$stopien = 3;
//operator trójkowy
$stopien > 1 ? $wynik = 'pozytywny' : $wynik = 'negatywny';
//ten sam zapis w instrukcji if...else...
if ($stopien>1) $wynik = 'pozytywny'; else $wynik = 'negatywny';

Zostanie wyświetlone: pozytywny

OPERATOR TŁUMIENIA BŁĘDÓW @

$a = 3.25;
$b = 0; //Uwaga - nie ma dzielenia przez zero!
$c = $a / $b; //błąd - zatrzymanie wykonywania skryptu
echo $c; //ta instrukcja nie będzie wykonana

Zostanie wyświetlone:
Warning: Division by zero in C:\xampp\htdocs\zajecia\operatory.php on line 376
NAN

$c = @($a / $b); //kontynuacja skryptu
echo 'Błąd został stłumiony';

Zostanie wyświetlone: Błąd został stłumiony

OPERATORY TABLICOWE

$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
// union of $x and $y
echo '<pre>';
print_r($x + $y);
echo '</pre>';

Wyświetli:

Array
(
    [a] => red
    [b] => green
    [c] => blue
    [d] => yellow
)
//Returns true if $x and $y have the same key/value pairs
var_dump($x == $y);

Wyświetli: bool(false)

//Returns true if $x and $y have the same key/value pairs in the same order and of the same types
var_dump($x === $y);

Wyświetli: bool(false)

//Returns true if $x is not equal to $y
var_dump($x != $y);

Wyświetli: bool(true)

//Returns true if $x is not equal to $y
var_dump($x <> $y);

Wyświetli: bool(true)

//Returns true if $x is not identical to $y
var_dump($x !== $y);

Wyświetli: bool(true)

ZADANIA:

1. Napisz skrypt, który wyświetli w oknie przeglądarki tekst:
Tomorrow I’ll learn PHP global variables.
oraz tekst:
This is a bad command : del c:\\*.*
Każdy napis w osobnej linii.

2. Utwórz zmienną zawierającą tekst: Kocham PHP i wyświetl ją.

3. Zdefiniuj stałą URL, przypisz do niej adres internetowy i wyświetl ją.

4. Zadeklaruj 2 zmienne $a = 10 i $b = 3. Wykonaj na nich operacje arytmetyczne i wyświetl wyniki w postaci:
dodawanie: $a + $b = 10 + 3 = 13…
wykonaj te czynności z: +, -, *, /, %, **, negacja.

5. Zadeklaruj zmienne $c = 12 i $d = 6. Przetestuj na nich łączone operatory przypisania i wyświetl wyniki w formacie:
$c += $d to jest to samo co $c = $c + $d, czyli 12 + 6 = 18…

6. Uruchom poniższy kod i przeanalizuj go.

<?php
$A = 5; $B = 9; $C = 5;
// Operatory porównania zwracają TRUE lub FALSE więc używamy komendy var_dump()
var_dump( $A == $B );
var_dump( $A != $B );
var_dump( $A == $C );
var_dump( $A === $C );
?>

Na jego podstawie wykonaj poniższe zadanie:
Utwórz dwie zmienne o nazwach $first, $second. Przypisz do nich dwie różne wartości logiczne jakie znasz (true i false). Użyj komendy var_dump() aby sprawdzić wynik porównania ich ==. Zmień wartość zmiennej second na przeciwną i ponownie sprawdź wynik. Ustaw obie zmienne na wartość false i ponownie sprawdź wynik. Sprawdź co się stanie, jeśli komendę var_dump zamienisz na komendę echo.

7. Utwórz trzy zmienne o nazwach $nr1, $nr2, $resultModulo. Dwie niech przechowują dowolne liczby całkowite. Trzecia o nazwie $resultModulo niech przechowuje liczbę 0. Oblicz resztę z dzielenia (modulo) tych liczb ($nr1 modulo $nr2) i zapisz wynik w zmiennej $resultModulo. Wypisz zmienną $resultModulo w konsoli za pomocą komendy echo

8. Wyświetl informację o aktualnie używanej wersji php

9. Napisz skrypt, który umieści na stronie w znacznikach H1 napis: “PHP – podstawy”.

10. Utwórz zmienną o nazwie $php i przypisz do niej napis: “$$ PHP ćwiczymy string $$”. Następnie, umieść zawartość tej zmiennej w tytule strony oraz w nagłówku H2 w widoku strony.

11. Trzy zmienne zostały zdefiniowane:

$a = 2;

$pi = 3.14;

$tekst = „Jestem mistrzem PHP”;

używając zmiennych $a, $pi, $tekst napisz skrypt wyświetlający następujący tekst:

2 to liczba parzysta

Liczba PI to: 3.14

Jestem mistrzem PHP

12. Wyświetl wynik dodawania, odejmowania, dzielenia, mnożenia, reszty z dzielenia i potęgowania dwóch zmiennych:

$a = 4;

$b = 8;

13. Napisz skrypt, który zamienia między sobą wartości dwóch zmiennych:

$zmiennax1 = 10;

$zmiennax2 = 12;

14. Przygotuj skrypt, który obliczy pole powierzchni i obwód prostokąta o bokach $x i $y:

$x = 20;

$y = 100;