Zmienne w php

Zmienna (variable) to oznaczony kontener, który przechowuje informacje. Informacje te mogą być pobierane i zmienianie w trakcie trwania programu, dlatego nazywamy je zmiennymi 😉 Każda zmienna musi posiadać unikalną nazwę, ponieważ to za pomocą nazwy będziemy odnosić się do informacji przechowywanych w zmiennej. W programowaniu rozróżniamy wiele typów informacji, np:

  • wartości tekstowe (string)
  • liczby całkowite (int)
  • liczby rzeczywiste (float) lub (double)
  • wartości logiczne, prawda lub fałsz (bool)
  • tablice (array)
  • obiekty (object)
  • zasoby (resource)
  • Do zmiennej możemy też przypisać wartość NULL, co oznacza brak jakiejkolwiek wartości (nie mylić z 0).

W niektórych językach podczas tworzenia zmiennej należy od razu zdefiniować typ wartości, które będą przechowywane wewnątrz zmiennej. W przypadku języka php, nie jest to wymagane. W trakcie wykonywania kodu, interpreter określa typ informacji na podstawie jej wartości,np:

<?php
    $zmienna_typu_string = "Tekst";
    $zmienna_typu_int = 12;
    $zmienna_typu_double = 0.5;
    $zmienna_typu_bool = true;
    
    # wypisz typ zmiennej za pomocą metody gettype()
    echo gettype($zmienna_typu_bool);
?>

Kilka reguł związanych z tworzeniem zmiennych

  • Każda zmienna rozpoczyna się od znaku dolara $, np: $moja_pierwsza_zmienna
  • Nazwa zmiennej nie może zawierać spacji, ale może składać się z liter, cyfr i znaku podkreślenia, np: $zmienna_2
  • Pierwszy znak nazwy po $ nie może być cyfrą
  • Nazwy zmiennych w php są case-sensitive, to znaczy, że mała litera nie jest tożsama z wielką literą, dla przykładu $zm_1 i $ZM_1 to dwie zupełnie różne zmienne.

W niektórych językach programowania, możemy deklarować zmienne, później przypisać do nich wartość. W przypadku języka php, powinniśmy od razu przypisać wartość do zmiennej poprzez znak przypisania (=), np:

$nrDomu = 34;

Oczywiście w czasie trwania aplikacji możemy zmieniać i nadpisywać informacje przechowywane w zmiennej, np:

$nrDomu = 44;
$nrDomu = 56;
$nrDomu = 42;
echo $nrDomu;

Inkrementacja i dekrementacja w php

Często będziemy chcieli zmieniać zawartość zmiennej na podstawie aktualnej wartości, np. gdy chcemy zwiększyć zawartość portfela dwukrotnie. Zabiegi takie, czyli zmiana wartości na podstawie wartości aktualnej, nazywamy inkrementacją lub dekrementacją, w zależności od tego czy daną wartość zwiększamy czy zmniejszamy, np:

$stanKonta = 100;
$stanKonta += 20; # zwiększ stan konta o 20
$stanKonta -= 10; # zmniejsz stan konta o 10
$stanKonta *= 2;  # zwiększ stan konta 2-krotnie
$stanKonta /= 4;  # zmniejsz stan konta 4-krotnie
$stanKonta ++;    # zwiększ stan konta o 1
$stanKonta --;    # zmniejsz stan konta o 1
echo $stanKonta ;

Stałe w php – constants

Stałe, mają podobną funkcję co zmienne, ale nie można ich zmieniać w trakcie trwania programu. Definiujemy je na początku i taka wartość zostaje już do końca. Np. liczba PI i inne niezmienne wartości matematyczne, zazwyczaj zapisywane są jako stałe.
Aby zdefiniować stałą, używamy następującego syntaxu:

define(name,value);

Stała przyjmuje 2 argumenty, podajemy nazwę stałej (bez znaku dolara), a następnie jej wartość. Nazwy stałych należy zacząć od litery lub podkreślenia i zazwyczaj używa się tylko wielkich liter. Wcześniej, przed wersją php 8.0 można było tworzyć stałe case-insensitive, ale już się tego nie robi.

<?php
    define("MSG", "To jest stała tekstowa");
    echo MSG;
    echo "<br>";
    
    define("PI", 3.1416);
    echo PI;
?>

camelCase i PascalCase

Aby kod był bardziej przejrzysty i deskryptywny, należy używać przemyślanych nazw dla zmiennych, stałych i funkcji. Istnieje kilka sposobów tworzenia nazw złożonych z kilku wyrazów.
Sposobu zwanego camelCase możemy użyć do tworzenia zmiennych i polega on na tym, że pierwsza litera nazwy pisana jest z malej litery, a każde kolejne słowo piszemy z wielkiej litery, np: dataUrodzenia, markaPojazdu, wartoscPoczatkowa.
Czasami będziecie się spotykać też z rozdzielaniem wyrazów za pomocą podkreślenia, choć zazwyczaj ten sposób stosuje się do tworzenia nazw funkcji, np: oblicz_silnie, podnies_do_potegi, polacz_z_baza_danych, itd.
Konwencja zwana PascalCase, czasami używana jest do tworzenia klas. Polega ona na tym, że zarówno pierwszy wyraz jak i każdy kolejny zaczynamy od wielkiej litery, np: MojaKlasa, KolejnaBardzoWaznaKlasa 😉

Zasięg lokalny i globalny

Zmienne, które są tworzone wewnątrz bloku kodu, np funkcji, będą widoczne tylko wewnątrz tego bloku i będziemy określać ich zasięg jako lokalny. Żadna inna funkcja nie będzie w stanie się do niej odnieść. Jeśli chcemy stworzyć zmienną, która będzie dostępna dla kilku funkcji, możemy ją stworzyć w skrypcie, poza jakąkolwiek funkcją, wtedy przyjmie ona zasieg globalny i będzie dostępna dla inncyh funkcji. Poniżej przykład utworzenia zmiennych w zasiegu lokalnym i globalnym:

<?php
    $stanKonta = 1000; // zasieg globalny
    
    function jakas_funkcja(){
        $kwotaDoZaplaty = 100; // zasięg lokalny
    }
?>

Możliwe jest stworzenie zmiennej o takiej samej nazwie wewnątrz funkcji lub innego bloku bez jakiegokolwiek konfliktu, ponieważ domyślnie wewnątrz funkcji, będą brane pod uwagę zmienne lokalne, np: w przykładzie poniżej na ekranie wyświetli się liczba 200, czyli funkcja wyświetli zawartość zmiennej lokalnej.

<?php
    $stanKonta = 1000; // zasieg globalny
    
    function wyswietl_stan_konta(){
        $stanKonta = 200; // zasięg lokalny
        echo $stanKonta;
    }
    wyswietl_stan_konta();
?>

Do zmiennych globalnych możemy odwołać się z wnętrza funkcji, ale zanim to zrobimy, powinniśmy to zasygnalizować, że odnosimy się do tej zmiennej globalnej za pomocą słowa kluczowego global, np:

<?php
    $stanKonta = 1000; // zasieg globalny
    
    function wyswietl_stan_konta(){
        global $stanKonta;
        echo $stanKonta;
    }
    wyswietl_stan_konta();
?>

Wartość zmiennej jako nazwa innej zmiennej $$

W php za pomocą $$ możemy odnieść się do nazwy zmiennej za pomocą jej wartości, ale aby to lepiej zrozumieć prześledźmy poniższy przykład:

<?php
    $zmienna = 'zmienna2';
    $zmienna2 = "Hejka";
    echo $$zmienna;
?>

W przykładzie powyżej wyświetlamy zmienną o nazwie zmienna, ale nie widzimy na ekranie napisu 'zmienna2′. Zamiast tego, następuje przekierowanie do zmiennej o nazwie zmienna2 i to jej zawartość zostaje wyświetlona na ekranie. Można więc powiedzieć, że operator $$, pozwala tworzyć przekierowanie do nazwy zmiennej, która jest taka sama, jak zawartość zmiennej wywoływanej.

Scroll to Top