Zmienne, Typy Danych i Operatory w PHP

INF.03.7 (1) — Podstawy logiki serwerowej

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 ($imie to inna zmienna niż $Imie).
<?php
    $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().

<?php
    $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 (**).

<?php
    $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.

<?php
    $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

Materiały: Zmienne, Typy Danych i Operatory w PHP · Opracowanie na podstawie wymagań INF.03 | Autor: Tomasz Puchała (toloki.pl)