Zmienne, Typy Danych i Operatory w PHP
Wprowadzenie Zmienne i Zasady Nazywania
Zmienna w PHP służy do przechowywania informacji. PHP jest językiem dynamicznie typowanym, co oznacza, że nie musisz jawnie określać typu danych podczas deklaracji – typ jest automatycznie określany na podstawie przypisanej wartości.
- Zasada: Zmienne zawsze zaczynają się od znaku dolara (
$). - Nazewnictwo: Nazwa musi zaczynać się od litery lub podkreślenia (
_) i jest czuła na wielkość liter ($imieto inna zmienna niż$Imie).
$nazwaProduktu = "Monitor 27\""; // Poprawna nazwa
$_liczba_sztuk = 10;
$NazwaProduktu = "Inna wartość"; // Inna zmienna!
// $1zmienna = 5; // BŁĄD! Nie może zaczynać się cyfrą
?>
Typy Danych Typy Skalarne i Sprawdzanie Typu
Typy skalarne to pojedyncze wartości. Różne operatory zachowują się różnie w zależności od typu danych.
| Typ | Opis | Przykład | Funkcja Sprawdzająca |
|---|---|---|---|
| String | Ciąg znaków. Może być w pojedynczych lub podwójnych cudzysłowach. | $tekst = "INF.03"; |
is_string() |
| Integer | Liczby całkowite (bez miejsc po przecinku). | $wiek = 20; |
is_int() |
| Float (Double) | Liczby zmiennoprzecinkowe (z miejscami po przecinku). | $pi = 3.1415; |
is_float() |
| Boolean | Wartości logiczne: true lub false. |
$czyAktywny = true; |
is_bool() |
Sprawdzanie i Konwersja (Debugging)
Do debugowania typu i wartości zmiennej używamy m.in. gettype() oraz var_dump().
$liczba = "50"; // String!
var_dump($liczba); // string(2) "50"
$liczba_int = (int) $liczba; // Jawna konwersja na int
var_dump($liczba_int); // int(50)
?>
Operatory Rodzaje i Priorytety
Operatory w PHP pozwalają wykonywać obliczenia, przypisania oraz porównania wartości.
A. Operatory Arytmetyczne
Do obliczeń używa się m.in. dodawania, modulo, dzielenia oraz potęgowania (**).
$x = 10;
$y = 3;
echo $x + $y; // Dodawanie (13)
echo $x % $y; // Modulo (1)
echo $x ** $y; // Potęgowanie (1000)
echo 10 / 3; // Dzielenie (3.333...)
?>
B. Operatory Przypisania
Skrócone operatory przypisania upraszczają modyfikowanie wartości zmiennych.
$licznik = 0;
$licznik += 5; // $licznik = $licznik + 5;
$tekst = "Witaj";
$tekst .= " Świecie"; // Konkatenacja z przypisaniem
?>
C. Operatory Porównania
Porównania zwracają true lub false; === sprawdza zarówno wartość, jak i typ.
| Operator | Nazwa | Przykład | Wynik |
|---|---|---|---|
== |
Równy | 10 == "10" |
true (porównuje tylko wartość) |
=== |
Identyczny | 10 === "10" |
false (różny typ) |
!= lub <> |
Różny | 10 != 5 |
true |
!== |
Nie identyczny | 10 !== "10" |
true |
Ćwiczenie Zadania Praktyczne (Do wykonania w pliku .php)
Zadanie 1: Operacje VAT (Podstawowe)
Utwórz skrypt obliczający cenę brutto, pamiętając o typach danych i konwersji tekstu na liczbę.
Zadanie 2: Sprawdzenie Warunków Logicznych (Ponadpodstawowe)
Wykorzystaj operatory porównania i logiczne, aby sprawdzić różne warunki.
Rozwiązania Zadania VAT i Logika
Rozwiązanie Zadania 1: Operacje VAT
Poniżej gotowy skrypt realizujący obliczenie ceny brutto z jawną konwersją typu.
<?php /** * Zadanie 1: Operacje VAT */ echo "<h2>Zadanie 1: Operacje VAT</h2>"; // 1. Deklaracja zmiennych $cena_netto = "499.99"; // String $vat = 0.23; // Float echo "<p>Cena netto (początkowo String): "; var_dump($cena_netto); echo "</p>"; // 2. Jawna konwersja na float $cena_netto_float = (float) $cena_netto; // 3. Obliczenie ceny brutto $cena_brutto = $cena_netto_float * (1 + $vat); // 4. Wyświetlenie wyniku i sprawdzenie typu echo "<p>Cena brutto: " . number_format($cena_brutto, 2, ',', ' ') . " PLN</p>"; echo "<p>Typ i wartość zmiennej \$cena_brutto:</p>"; var_dump($cena_brutto); ?>
Rozwiązanie Zadania 2: Warunki logiczne
Skrypt ilustruje działanie operatorów === oraz && dla różnych wartości zmiennej $czy_admin.
<?php
/**
* Zadanie 2: Sprawdzenie warunków logicznych
*/
echo "<h2>Zadanie 2: Sprawdzenie warunków logicznych</h2>";
// 1. Deklaracja zmiennych
$status_kod = 200; // int
$czy_admin = 0; // int, w kontekście boolean: false
echo "<p>Początkowe wartości: \$status_kod = {$status_kod}, \$czy_admin = {$czy_admin}.</p>";
// 2. Porównanie identyczności z napisem "200"
$porownanie_identyczne = ($status_kod === "200");
echo "<p>Porównanie \$status_kod === \"200\":</p>";
var_dump($porownanie_identyczne);
// 3. Warunek logiczny z AND przy \$czy_admin = 0
$warunek_a = ($status_kod == 200) && ($czy_admin == true);
echo "<p>Warunek A: status == 200 ORAZ czy_admin == true (czy_admin = 0):</p>";
var_dump($warunek_a);
// 4. Zmiana \$czy_admin na 1 i ponowne sprawdzenie
$czy_admin = 1; // teraz w kontekście boolean: true
$warunek_b = ($status_kod == 200) && ($czy_admin == true);
echo "<p>Zmieniono \$czy_admin na 1.</p>";
echo "<p>Warunek B: status == 200 ORAZ czy_admin == true (czy_admin = 1):</p>";
var_dump($warunek_b);
?>
Materiały Narzędzia i Linki
- PHP Manual: Typy danych w PHP.
- PHP Manual: Operatory w PHP.
- Debugowanie: Używaj
var_dump(), aby sprawdzać typ i wartość zmiennych.