Utisci korisnika

Veoma sam zahvalna na Vašem brzom odgovoru i želela bih da Vam se zahvalim na pažnji koju ste pokazali. Radica Nedelčev - Beograd

Hvala Vam na podršci i moram Vam priznati da ste jako ljubazni. Milan Đelić, Valjevo


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: - Core PHP Programming

Modul: Definicija instalacija i osnove PHP-a

Autor: Vladimir Marić

Naziv jedinice: Promenljive


Materijali vezani uz ovu lekciju:

- Test promenljive
- Promenljive (PDF dokument)



Promenjive (varijable) u PHP-u

Varijable su privremeni kontejneri u koji se skladište neke vrednosti. Nakon što je vrednost uskladištena u memoriju, ona biva reprezentovana kroz varijablu (promenljivu).

Tipovi podataka koje jedna varijabla može reprezentovati su, naravno, svi tipovi obrađeni u prethodnoj lekciji.

U prethodnoj lekciji smo takođe pomenuli da je PHP u stanju da automatski-implicitno konvertuje jedan tip podatka u drugi, u zavisnosti od operacije koja je nad njim urađena. Ova osobina jezika naziva se Loosely typed (postoji i Strong typed).

To znači da nećemo morati mnogo da brinemo o tome kako smo deklarisali određeni tip, sve dok se tom tipu obraćamo na adekvatan način.

Zapravo, kada govorimo o promenljivim u PHP-u, postoji tek nekoliko pravila kojih se moramo držati: Promenljive moraju biti identifikovane znakom $, ne smeju početi brojem, ključnom rečju jezika ili specijalnim karakterom i osetljive su na velika i mala slova (npr. promenljive $ime i $Ime su različite).

Iako pri imenovanju promenljivih ne moramo poštovati nikakva jezička pravila, poželjno je da se koristi jedna od nekoliko konvencija za pisanje. Jedna od najpopularnijih je “Camel Case” notacija, koja podrazumeva veliko slovo na početku svake reči u promenljivoj. Npr. $MojaPromenljiva ili $ovoJeMojaPromenljiva.

U PHP-u je moguće dodeliti nazivu varijable vrednost neke druge varijable. Na primer:

$mp="mojaPromenljiva";
$$mp="sadrzaj moje promenljive";


U ovom slučaju, dodelili smo nazivu druge varijable vrednost prve varijable (mp), tako da je sada moguće doći do vrednosti druge varijable kroz varijablu:

$mojaPromenljiva;


Ovu vrednost takođe je moguće dobiti i kroz varijablu:

$$mp="sadrzaj moje promenljive";


Ali i prilikom ovakvog načina definisanja promenljivih, mora se pridržavati pravila o nazivima varijabli. Na primer, ako bismo definisali varijablu 123 na sledeći način:

$mp="1mojaPromenljiva";
$$mp="sadrzaj moje promenljive";

Prilikom poziva te varijable ($mojaVarijabla) došlo bi do greške, zato što brojevi u početku imena varijable nisu dozvoljeni. Ipak, i pored toga, ova varijabla i vrednost koja joj je dodeljena, bile bi uskladištene u memoriji i dostupne kroz sledeću sintaksu:

${'1mojaPromenljiva'}


Treba biti naročito oprezan prilikom ovakvog pristupa, jer ukoliko je neadekvatan, može lako doći do bezbednosnih propusta u aplikaciji.

U PHP-u ne postoji način da se potpuno osigura postojanje neke promenljive u određenoj tački programa, što može dovesti do funkcionalnih i bezbednosnih problema. Zato se, kako bi se ublažio problem uzrokovan ovim nedostatkom, koristi funkcija isset(), koja ispituje postojanje neke promenljive.

Ova funkcija prihvata naziv promenljive kao parametar i vraća vrednost tipa boolean kao rezultat.

isset($mojaPromenljiva)


Ako je $mojaPromenljiva, prethodno definisana u kodu, funkcija isset će vratiti kao vrednost true. U suprotnom, ova funkcija će vratiti vrednost false (više o funkcijama, radićemo u narednim lekcijama).

Ukoliko, ipak, budete rukovali sa nepostojećim promenljivima, PHP će biti u stanju da obradi ovakve promenljive na adekvatan način. Na primer:

$a+2


U slučaju da promenljiva $a ne postoji nigde u prethodnom kodu, PHP će je tretirati kao da joj je vrednost nula, pa će rezultat ovog izraza biti 2. Slična stvar će se dogoditi i ukoliko je izraz:

$a+$b


Tada će rezultat biti nula, jer su obe promenljive tretirane kao nule, iako nisu prethodno definisane.

Ovaj rezultat će zavisiti od podešavanja u PHP.ini fajlu. Nepostojanje promenljive može izazvati grešku.


Konstante

Kada su u pitanju korisnički definisane vrednosti, osim promenljivih, postoji još jedan tip kome je vrednost, kada ih jednom inicijalizujemo fiksna. Takvi tipovi se nazivaju konstante. Konstante upotrebljavamo kada znamo da se inicijalizovana vrednost sigurno neće menjati tokom izvršavanja programa. Za konstante je, takođe, karakteristično (osim standardnih pravila za primenljive) i to da ne moraju sadržati $ ispred imena promenljive. Najbolji primer za vrednost konstante je 3.14 (odnosno PI).

Konstante se kreiraju pomoću naredbe define("ime konstante", vrednost). Na primer:

define("KURSVALUTE", 80.2);
define("FAKULTET", "BARN");


Po konvenciji, konstantama se dodeljuju imena pisana velikim slovima, ali to nije pravilo. PHP prihvata i mala slova u imenu konstante. Pri imenovanju konstanti treba voditi računa da se ne koriste ključne reči PHP-a.

PHP ima puno ugrađenih konstanti koje možete da koristite u svom kodu. Neke od njih su:

__LINE__ - broj linije u kojoj se konstanta koristi
__FILE__ - ime fajla u kome se konstanta koristi


Prilikom inicijalizacije treba obratiti pažnju da konstanta može prihvatiti samo skalarni tip podatka.

U drugim programskim jezicima neophodno je da se promenljiva deklariše pre nego što joj se dodeli vrednost. U PHP-u je dovoljno samo dodeliti vrednost promenljivoj. Pre samog smeštanja vrednosti u memoriju, PHP sam određuje tip vrednosti i snima je u odgovarajućem formatu. Ukoliko je potrebno, PHP automatski i konvertuje jedan tip podataka u drugi. Na primer:

$prviBroj = 1; // čuva se kao celobrojna vrednost
$drugiBroj = 1.1; // čuva se kao realan broja
$suma = $prviBroj + $drugiBroj;


U trećoj naredbi, sabiraju se dve vrednosti različitog tipa. Pre samog sabiranja, PHP konvertuje celobrojnu vrednost u realnu, kako bi sabiranje bilo moguće.

Da bismo nekoj promenljivi dodelili ili promenili vrednost, koristimo operatore.

 

Vežba 1

Problem:

U postojećoj aplikaciji, postoji set promenljivih vezanih za bazu podataka kreiran na sledeći način:

<?php  
  $s = "localhost";
  $k = "root";
  $s = "";
  $b = "mojaBaza";
?>


Potrebno je modifikovati promenljive u cilju bolje intuitivnosti.


Rešenje:

Ove promenljive nemaju intuitivna imena i vrlo je moguće da će se ukrstiti sa drugim promenljivima u okviru aplikacije. Bolja imena bila bi na primer:

<?php  
  $dbServer = "localhost";
  $dbKorisnik = "root";
  $dbSifra = "";
  $dbBaza = "mojaBaza";
?>

 

Vežba 2

Problem:

Jednostavna aplikacija koja sabira dva broja i emituje ih na izlaz, ne funkcioniše. Potrebno je ispraviti grešku:

<?php  
  $x = 10;
  $y = 20;
  echo $x+$Y;
?>


Rešenje:

PHP je osetljiv na velika i mala slova, a u poslednjoj liniji aplikacije se umesto $y nalazi $Y, što dovodi do greške, jer promenljiva $Y ne postoji.

<?php  
  $x = 10;
  $y = 20;
  echo $x+$y;
?>

 

Vežba 3

Problem:

Potrebno je napraviti set konstanti koje će biti korištene za rukovanje bazom podataka. U ovom trenutku, postoje promenljive:

<?php  
  $dbServer = "localhost";
  $dbKorisnik = "root";
  $dbSifra = "mojaSifra";
  $dbBaza = "mojaBaza";
?>


Rešenje:

<?php
  define("_DB_SERVER_","localhost");
  define("_DB_KORISNIK_","root");
  define("_DB_SIFRA_","mojaSifra");
  define("_DB_BAZA_","mojaBaza");
?>

 


Najbitnije iz lekcije

  1. Promenljive u PHP-u moraju ispred imena sadržati znak $ ($mojaPromenljiva).
  2. Promenljive u PHP-u kao prvi znak imena ne smeju imati broj ili specijalni karakter ($1mojaPromenljiva – ne valja, $%mojaPromenljiva – ne valja).
  3. Konstante u PHP-u ne moraju imati znak $ ispred imena. define("PI", 3.14);
  4. Konstante u PHP-u mogu biti bilo kog tipa (koji je podržan od strane jezika)

Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:10


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: