Načrtovanje in razvoj spletnih aplikacij

Spremenljivke v PHP

Spremenljivke uporabljamo za shranjevanje različnih vrednosti. V spremenljivko lahko shranimo številke, nize, znake, predmete, polja in logične znake. Ime spremenljivke je sestavljeno iz znaka $ in imena spremenljivke. Ime lahko vsebuje črke, številke in podčrtaj.

Izpis spremenljivk:

<?php
   $hello = "Hello World!";
   $a_number = 4;
   $anotherNumber = 8;
   echo $hello."<br />";
   echo $a_number."<br />";
   echo $anotherNumber;
?>
Hello World!
4
8

Dinamične spremenljivke

Spremenljivke definiramo tako, da pred njih dodamo znak dolar. Obstaja tudi način, da spremenljivko definiramo kot kazalec:

$uporabnik = "Simon";

je enako kot:

$vmesnik = "uporabnik";
$$vmesnik = "Simon";

V obeh primerih z ukazom echo $vmesnik izpišemo Simon. $$vmesnik lahko štejemo kot dolar, kateremu sledi vrednost spremenljivke $vmesnik.

Sklicevanje na spremenljivke

Če želimo spremenljivko $Spremenljivka prirediti drugi spremenljivki $NovaSpremenljivka, to naredimo tako, da kopiramo vrednost iz prve v drugo spremenljivko. V primeru, da prvi spremenljivki spremenimo vrednost, bo vrednost v drugi spremenljivki ostala ista.

<?php
   $Spremenljivka = 42;
 
   //vrednost prve sprem. priredimo drugi
   $NovaSpremenljivka = $Spremenljivka; 
   $Spremenljivka = 325;
   echo $NovaSpremenljivka; //izpiše vrednost 42
?>
42

V verziji PHP-ja, ki je višja od 4, lahko določimo tudi sklicevanje ene spremenljivke na drugo.

<?php
   $Spremenljivka = 42;

   //pomnilniški naslov prve sprem. priredimo drugi
   $NovaSpremenljivka = &$Spremenljivka; 
   $Spremenljivka = 325;
   echo $NovaSpremenljivka; //izpiše vrednost 325
?>
325

Razlika med kodama je v tem, da smo dodali znak & pred $Spremenljivka. S tem določimo, da sta spremenljivki $Spremenljivka in $NovaSpremenljivka med sabo povezani, kar pomeni, da imata enako vrednost. S tem lahko prihranimo vrstico kopiranja, kar pri večjih projektih poveča hitrost procesiranja kode.

Tipi podatkov

Različni tipi podatkov zavzemajo različno količino pomnilnika in tudi skripte jih obravnavajo drugače. V primerjavi s PHP-jem nekateri programski jeziki zahtevajo, da vnaprej določimo, kakšne vrste podatek bo katera spremenljivka vsebovala. Po eni strani to pomeni, da je PHP zelo fleksibilen, po drugi pa lahko pride pri obsežnejših skriptah do zmešnjave. Določena spremenljivka lahko vsebuje popolnoma drug podatek, kot smo pričakovali.

Tip Primer vrednosti Opis
Integer 5 celo število
Double 3.213 realno število
String "Pozdravljen!" niz znakov
Boolean true logična vrednost
Object   predmeti
Array   polje

Za testiranje tipov podatkov lahko uporabimo vgrajeno funkcijo gettype(), ki vrne tip podatka glede na shranjeno vrednost:

$test = 5;
echo gettype($test); //vrne ineteger

Podoben primer lahko naredimo za druge podatkovne tipe. Vgrajena je tudi funkcija settype(), ki spremeni tip podatka:

$nedolocena_vrednost = 3.14
settype($nedolocena_vrednost, integer)
echo $nedolocena_vrednost; //izpise 3

Pri spreminjanju v podatek tipa Integer se vse številke za decimalno vejico odstranijo. Če spreminjamo podatek v tip Boolean, pa se vse vrednosti, različne od nič, smatrajo kot true. Le-ta je pri izpisu predstavljen z 1, false pa z 0.

Konstante

Spremenljivke omogočajo fleksibilen način shranjevanja podatkov, saj lahko njihove vrednosti kadarkoli spremenimo. PHP omogoča tudi definiranje vrednosti, za katere ne želimo, da se spreminjajo. S pomočjo vgrajene funkcije define() definiramo konstanto, ki je nato ne moremo več spreminjati. Kot konstanto lahko definiramo samo niz ali število.

<?php
   define ("UPORABNIK", "Miha");
   echo "Pozdravljen " . UPORABNIK;
?>
Pozdravljen Miha

Preddefinirane spremenljivke:

  • $GLOBALS - referenca na vse globalne spremenljivke
  • $_SERVER - strežniške spremenljivke
  • $_GET - vrednosti, poslane po HTTP metodi GET
  • $_POST - vrednosti, poslane po HTTP metodi POST
  • $_COOKIE - spremenljivke iz piškotkov
  • $_FILES - datoteke, poslane preko HTTP POST
  • $_REQUEST - skupno za spremenljivke, dobljene preko GET, POST in COOKIE