Snimanje i ucitavanje podataka by ac0

ljuskaArchive
//archivePosts: 37Member, Moderator in PHP

Promenljive u PHP-u prepoznajemo tako što na pocetku uvek stoji znak $ (dolar, string).
Znaci ispred svake promenljive mora stojati znak $ iako se ona sastoji od samo jednog slova.
Takode morate voditi racuna o velikim i malim slovima u imenima promenljivih jer ih PHP razlikuje.
Na primer, $MojaPromenljiva i $mojapromenljiva nije isto.
Ime promenljive mora pocinjati slovom, posle može sadržati brojeve ili neke druge znakove ali ne i razmak.
Razlika izmedu PHP-a i nekih drugih programskih jezika je da kada sami uvodimo promenljive ne moramo ih prvo deklarisati kao što je neophpdno kod nekih drugih programskih jezika.
Promenljiva ce biti kada joj prvi put dodelite vrednost. Promenljivima dodeljujete vrednost pomocu operatora za dodelu vrednosti (=).
Na primer:

$godine = 25;
$cena = 100,99;
$temperatura = - 5;
$ime = "Marko Markovic";

Promenljivima možete dodeliti i vrednost drugih promenljivih. Na primer:

$jabuke = 3;
$kruske = $jabuke;

Tipvi promenljivih

Tip promenljive se odnosi na vrstu podataka koji se u njoj nalaze.
PHP podrzava sledece osnovne tipove podataka:

-integer - celobrojni, koristi se za cele brojeve
-double ili float - pokretni zarez dvostruke preciznosti
-string - znakovni, koristi se za znakovne podatke
-boolean - logicki, koristi se za podatke tipa tacno ili netacno
-array - niz, koristi se za cuvanje više podataka istog tipa
-object - objekt, koristi se za cuvanje primeraka, klasa

Postoje i dva specijalna tipa podataka NULL i resurs.
Promenljivama kojima nije dodeljena vrednost, koje su nedefinisane ili kojima je izricito dodeljena vrednost NULL, tipa su NULL.
Neke ugradene funkcije npr. rad sa bazom podataka, vracaju promenljive tipa resurs, koje predstavljaju spoljne resurse.

Promenljive promenljive

PHP podržava još jedan tip promenljive koji se zove promenljiva promenljiva (eng. variable variable). Ovakve promenljive daju mogucnost da imena promenljivih menjate dinamicki.
Svi programski jezici puštaju da menjate vrednost promenljive ali ih nema mnogo koji dopuštaju da menjate tip promenljive, a još manje ih prihvata da menjate ime promenljive.
Promenljiva promenljiva se dobija kada se vrednost jedne promenljive koristi kao ime druge. Na primer:

$promenljiva1 = "jabuke";
$$promenljiva1 = 3;

Cime smo dobili promenljivu jabuke i dodelili joj vrednost 3.

Upotreba konstanti

Konstanta predstavlja odredenu vrednost isto kao i promenljiva.
Vrednost koja se cuva u promenljivoj možete da menjate kad god vam zatreba, dok kod konstanti ta vrednost se zadaje jednom i više se ne može menjati.
Za definisanje konstanti koristimo funkciju define, na primer:

define ("imekonstante", "vrednost konstante");

Evo još jednog primera:

define ("VREME", "Suncano");

Znaci definisali smo konstantu VREME i dodelili joj vrednost Suncano.
Obratite pažnju da je ime konstante napisano velikim slovima, ta konvencija je preuzeta iz programskog jezika C, ona nije obavezna, vec služi da olakša razlikovanje izmedu promenljivih i konstanti, što ce kasnije dovesti do lakšeg citanja i održavanja koda.

Velika razlika izmedu konstanti i promenljivih je ta da se ispred konstanti ne piše simbol za dolar ($).
Ako želite da uptrebite vrednost konstante, onda samo upišite njeno ime, na primer:

echo VREME;

Opseg važenja promenljive

Opseg važenja promenljive se odnosi na mesta u skripti na kojima je data promenljiva vidljiva.
U PHP-u postoji šest mogucnosti opsega važenja:

  • Ugradene super globalne promenljive vide se u celom skriptu.
  • Konstante, kada ih deklarišete, uvek imaju globalnu vidljivost; a to znaci da ih možete upotrebiti unutar i izvan funkcija.
  • Globalne promenljive, deklarisane u skriptu vidljive su svuda u skriptu, ali ne i unutar funkcija.
  • Promenljiva koju napravite unutar funkcije, a date joj isto ime kao promenljivoj koja je deklarisana kao globalna, upucuje na globalnu promenljivu
    istog imena.
  • Promenljive koje napravite unutar funkcije, a deklarišete kao staticke promenljive, ne vide se izvan funkcija, ali cuvaju svoje vrednosti izmedu
    dva izvršavanja funkcije.
  • Promenljive koje napravite unutar funkcije lokalne su za funkciju i prestaju da postoje kada prestane izvršavanje funkcije.

Od verzije PHP-a 4.1 pa nadalje, za nizove $_GET i $_POST i za neke druge posebne promenljive, vaze drugacija pravila za opseg važenja.
To su superglobalne promenljive koje se vide svuda, u funkcijama i izvan njih.

Kompletan spisak superglobalnih promenljivih je:

  • $GLOBALS - niz svih globalnih promenjivih.
  • $_SERVER - niz serverskih promenljivih.
  • $_GET - niz promenljivih koje se prosleduju skriptu metodom GET.
  • $_POST - niz promenljivih koje se prosleduju skriptu metodom POST.
  • $_COOKIE - niz kolacica.
  • $_FILES - niz promenljivih koje se odnose na datoteke poslate sa klijentskog racunara.
  • $_ENV - niz promenljivih okruženja.
  • $_REQUEST - niz svih promenljivih koje je korisnik poslao.
  • $_SESSION - niz promenljivih sesije.

Operatori

Operatori su simboli koji omogucavaju izvršavanje operacija nad vrednostima i promenljivima.
Operatori mogu imati jedan, dva ili tri argumenata, stim što vecina ima dva. Na primer operator dodele (=) ima dva argumenata, memorijsku lokaciju na levoj strani simbola = i izraz na desnoj strani. Ti argumenti se nazivaju operandi, vrednosti kojima se operiše.

Aritmeticki operatori

Aritmeticki operatori su vrlo jednostavni, to su obicni znakovi za racunske operacije.

Tabela: Aritmeticki operatori

Operator
Ime
Primer
+
sabiranje

$a + $b

oduzimanje
$a - $b
*
množenje
$a * $b
/
deljenje
$a / $b
%
modulo
$a % $b

Rezultat operacije svakog operatora se može sacuvati u nekoj promenljivoj.
Na primer:

$result = $a + $b;

Rezultat tih operacija je zbir, odnosno razlika vrednosti koja se nalazi u promenljivama $a i $b.
Znak za oduzimanje može da se koristi i kao unarni operator (operator sa jednim operandom) za negativne brojeve. Na primer:

$a = -1;

Množenje i deljenje se takode isto odvijaju kao i matematicke operacije istog imena.
Operator modulo vraca ostatak celobrojnog deljenja promenljive $a promenljivom $b. Na primer;

$a = 27;
$b = 10;
$result = $a % $b;

Vrednost promenljive $result bice ostatak celobrojnog deljenja 27 sa 10, dakle 7.

Aritmeticki operatori se obicno primenjuju na brojeve, ako ih primenite na znakove, PHP ce pokušati da pretvori znakovnu vrednost u broj.

Operatori za znakovne vrednosti

Jedini operator za znakovne vrednosti je operator za nadovezivanje (.) znakovnih vrednosti. Možete ga upotrebiti za spajanje dve znakovne vrednosti, na primer:

$a = "Marko";
$b = "Markovic";
$result = $a.$b;

Dakle promenljiva $result ce vratiti vrednost Marko Markovic.

Operatori dodele

Osnovni operator dodele je (=), na primer:

$jabuke = 3;

Ovo bi trebalo citati kao: promenljivoj $jabuke dodajemo vrednost 3.

Operator dodele takode vraca odredenu vrednost, slicno drugim operatorima, na primer kada zadate:

$a + $b

vrednost ovog izraza je zbir promenljivih $a i $b. Slicno tome vrednost izraza:

$a = 0;

je nula.

To omogucava da napišete izraze poput:

$b = 6 + ($a = 5);

Promenljiva $b dobija vrednost 11.

Za sve operatore dodele vazi sledece pravilo: vrednost celog iskaza dodele je vrednost koja je dodeljena operandu na levoj strani.

Kombinovani operatori dodele

Osim jednostavnih postoje i kombinovani operatori dodele.
Svaki od njih je skracenica za izvršavanje odredene operacije nad promenljivom i upisivanja rezultata u tu promenljivu.
Na primer:

$a += 5;

isto je kao da ste napisali

$a = $a + 5;

Kombinovani operatori dodele postoje za svaki aritmeticki operator i za operator nadovezivanja znakovnih vrednosti.

Tabela: Kombinovani operatori dodele
Operator
Upotreba
Ekvivalentan Izrazu
+=
$a += $b
$a = $a + $b
-=
$a -= $b
$a = $a - $b
*=
$a *= $b
$a = $a * $b
/=
$a /= $b
$a = $a / $b
%=
$a %= $b
$a = $a % $b
.=
$a .= $b
$a = $a . $b

Prefiksno i sufiksno uvecanje i umanjenje

Prefiksni i sufiksni operatori uvecanja ++ i umanjenja -- slicni su operatorima += i -=, uz neke specificnosti.

Operatori uvecanja imaju dva efekta, oni prvo povecaju tekucu vrednost a zatim je dodeljuju. Na primer:

$a = 4;
echo ++$a;

U drugom redu je korišcen prefiksni operator uvecanja, koji se zove tako što se ++ pojavljuje ispred $a. Prvo se vrednost $a poveca za 1, a zatim se ta uvecana vrednost dodeljuje istoj promenljivoj. Tako je vrednost promenljive $a povecana na 5, a zatim se vrednost 5 ucitava iz promenljive i ispisuje.
Medutim ako je ++ posle $a to je sufiksni operator uvecanja, koji deluje drugacije. Na primer:

$a = 4;
echo $a++;

Sada je efekat suprotan, prvo se tekuca vrednost promenljive $a ucitava i ispisuje, a zatim se povecava. Vrednost celog izraza je 4 i vrednost se ispisuje. Vrednost $a posle ovog iskaza je 5.

Slicno se ponaša i operator --, stim što se vrednost $a umanjuje.

Reference

Operator referenca (& ampersend), može se koristiti u kombinaciji sa operatorima dodele. Kada se jedna promenljiva dodeljuje drugoj, obicno se pravi kopija prve promenljive koja se smešta negde u memoriju.
Na Primer:

$a = 5;
$b = $a;

Znaci pravimo kopiju vrednosti u promenljivoj $a i smeštamo je u promenljivu $b. Ako izmenimo vrednost promenljive $a, vrednost promenljive $b se nece menjati.

$a = 7; // $b je i dalje 5

Kopiranje možete da izbegnete pomocu operatora reference &. Na primer:

$a = 5;
$b = &$a;
$a = 7; // $a i $b su sada 7

Referenca se ponaša slicnije drugom imenu nego pokazivacu. I $a i $b upucuju na isti blok memorije, to možete izmeniti ako poništite definiciju jedne od promenljivih, na sledeci nacin:

unset ($a);

Poništavanjem definicije promenljive $b (7) ne menja se njena vrednost, ali se prekida veza izmedu $a i vrednosti 7 koja se cuva u memoriji.

Operatori poredenja

Operatori poredjenja se koriste za poredjenje dve vrednosti. Izrazi koji koriste operatore poredjenja kao rezultat daju logicku vrednost true (istina) ili false (laž) u zavisnosti od rezultata poredjenja.

Operator poredenja (==) dva znaka jednakosti, omogucava da ispitate da li su dve vrednosti jednake, na primer:

$a == $b

ispituje da li su vrednosti $a i $b iste. Rezultat ce biti true ako su jednaki ili false ako nisu.

Ovaj operator se lako brka sa operatorom dodele (=). Ako upotrebite pogrešan operator nece doci do greške ali necete dobiti ni željeni rezultat. Na primer:

$a = 5;
$b = 7;

Rezultat izraza $a i $b bice true. Zašto? Vrednost izraza $a = $b je dodeljena levoj strani, što je u ovom slucaju 7. Pošto je to vrednost razlicita od nule, rezultat izraza je true. Ako bi ste napisali $a == $b rezultat bi bio false.

Operator (===) identicnosti, on vraca true samo ako su oba operanda jednaka i istog tipa.
Na primer, rezultat poredenja 0 == '0' je true, ali 0 === '0' nije, jer je prva nula celobrojnog tipa a druga znakovnog.

Tabela: Operatori poredenja
Operator
Ime
Upotreba
= =
jednako
$a = = $b
= = =
identicno
$a = = = $b
!=
razlicito
$a != $b
!= =
nijeidenticno
$a != = $b
<>
razlicito
$a <> $b
<
manje od
$a < $b
>
vece od
$a > $b
<=
manje ili jednako
$a <= $b

=

vece ili jednako
$a >= $b

Logicki operatori

Logicki operatori se koriste za kombinovanje rezultata logickih uslova. Na primer želite da utvrdite da li je vrednost promenljive $a izmedu 0 i 100. Rešenje je da proverite da li su ispunjena oba uslova: $a >= 0 i $a <= 100. To omogucava operator logicke konjunkcije (AND):

$a >= 0 && $a <= 100

PHP podržava logicke operacije konjunkcije (AND), disjunkcije (OR), iskljucive disjunkcije (XOR) i negacije (NOT).

Tabela: Logicki operatori
Operator
Ime
Upotreba
Rezultat
!
negacija
!$b
vraca true ako je $b false i obratno
&&
konjunkcija
$a && $b
vraca true ako su $a i $b true, u protivnom vraca false
| |
disjunkcija
$a | | $b
vraca true ako su $a i $b ili oba true, u protivnom vraca false
and
konjunkcija
$a and $b
isto kao && ali sa nižim prioritetom
or
disjunkcija
$a or $b
isto kao | | ali sa nižim prioritetom

Operatori nad bitovima

Operatori nad bitovima omogucavaju da ceo broj obradujete kao grupu bitova koja ga predstavlja u memoriji. U PHP-u ih verovatno necete cesto upotrebljavati.

Tabela: Operatori nad bitovima
Operator
Ime
Upotreba
Rezultat
&
konjunkcija
$a & $b
Bitovi koji su aktivni u $a i $b aktivni su u rezultatu
|
disjunkcija
$a | $b
Bitovi koji su aktivni u $a ili $b aktivni su u rezultatu
~
negacija
$a ~ $b
Bitovi koji su aktivni u $b nisu aktivni u rezultatu i obrnuto
^
iskljuciva disjunkcija
$a ^ $b
Bitovi koji su aktivni ili u $a ili u $b ali ne u oba, aktivni su u rezultatu
<<
pomeranje ulevo
$a << $b
Pomera bitove $a ulevo za $b mesta

>

pomeranje udesno
$a >> $b
Pomera bitove $a udesno za $b mesta

Ostali operatori

Operator zarez “ , “ koristi se ze razdvajanje argumenata funkcija i stavki u spisku.

Operatori “ new “ i “ - > “ koriste se za pravljenje objekta odnosno za pristup clanovima objekta.

Operatori elementa niza “ [ ] “ omogucavaju pristupu elementima niza. Takodje za to može da se koristi i operator “ => “.
Uslovni operator ima oznaku “ ? : “ . Efekat ovog operatora najbolje možemo videti na primeru:

($ocena > 5 ? $b=’Položio’ : $b=’Pao’);

Ovaj izraz dodeljuje 'Položio' ili 'Pao' u zavisnosti od ocene.

Operator zanemarivanja greške @, može se uptrebiti ispred svakog izraza.
Na primer:

$a = @ (57/0);

Bez operatora @ izvršno okruženje bi generisalo upozorenje "delite nulom". A ako upotrebite ovaj operator greška se zanemaruje.

Operator izvršenja ima oznaku `` (inverzni polunavodnici).
Sve što se nalazi izmedu inverznih polunavodnika PHP pokušava da izvrši kao komandu zadatu na komandnoj liniji servera.
Na primer, u operativnim sistemima tipa Unix možete da upotrebite:

$out = ls – la;
echo $out;

Ekvivalent tome na windows serveru bi bilo:

$out = dir c:;
echo $out;

Obe verzije ce generisati spisak dokumenata iz direktorijuma u promenjljivu $out.

Operatori za rad sa nizovima

Postoji više operatora za rad sa nizovima. Operator za element niza [] omogucava pristup pojedinim elementima niza.
Operator => može se u nekim kontekstima primeniti i na nizove.

Tabela: Operatori za rad sa nizovima
Operator
Ime
Uptreba
Rezultat
+
unija
$a + $b
vraca niz koji se sastoji od svih elemenata $a i $b
= =
jednako
$a = = $b
vraca true ako $a i $b imaju jednake elemente
= = =
identicno
$a = = = $b
vraca true ako $a i $b imaju jednake elemente u jednakom redosledu
!=
razlicito
$a != $b
vraca true ako je $a razlicit od $b
<>
razlicito
$a <> $b
vraca true ako je $a razlicit od $b
!= =
nije identicno
$a != = $b
vraca true ako je $a nije identican$b

Operator za utvrdivanje tipa

Za utvrdivanje tipa objekta postoji samo jedan operator: instanceof.
Koristi se u objektno orijentisanom programiranju.
Operator instanceof omogucava da ispitate da li je odredeni objekat primerak zadate klase. Na primer:

class nekaKlasa{};
nekiObjekat = new nekaKlasa();
if (nekiObjekat instanceof nekaKlasa)
echo "nekiObjekat je primerak klase nekaKlasa";

Prioriteti i asocijativnost

Svaki operator ima odredeni prioritet ili redosled kojim se izracunava.
Operatori takode imaju i asocijativnost, tj. redosled kojim se operatori jednakog prioriteta izracunavaju.
Asocijativnost može biti sleva nadesno, zdesna nalevo ili nije bitna (n/b).

Tabela: Prioritet operatora
Asocijativnost
Operatori
leva
,
leva
or
leva
xor
leva
and
desna
print
leva
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
leva
? :
leva
| |
leva
&&
leva
|
leva
^
leva
&
n/b
= = != = = =
n/b
< <= > >=
leva
<< >>
leva
= - .
leva
* / %
desna

desna
[]
n/b
new
n/b
( )

Operator sa najvišim prioritetom su obicne zagrade ().
One deluju tako što povecavaju prioritet svega što se nalazi izmedu njih.
Pomocu njih možete namerno da zaobidete pravila prioriteta kada je potrebno. Na primer:

$a = (3 + 2) * 5;

vrednost promenljive bice 25, a da smo napisali

$a = 3 + 2 *5;

dobili bi smo 13, zbog toga što operacija množenja ima viši prioritet od operacije sabiranja.
U izrazu možete upotrebiti neogranicen broj zagrada i uvek ce se prvo izracunavati one najviše ugnježdene.

Postoji još jedan operator koji nismo pomenuli a to je komanda jezika PHP: print. Ova komanda je ekvivalentna komandi echo. Obe komande generišu izlazne podatke. Koju ce te od ove dve komande koristiti ostaje na vama.

Funkcije za rad sa promenljivim

Postoji biblioteka funkcija koja omogucava da na razne nacine obradujete i ispitujete promenljive.

Ispitivanje i menjanje tipova promenljivih

Vecina funkcija za rad sa promenljivima služi za ispitivanje tipova podataka. Dve najopštije funkcijje su gettype() i settype().

Funkcija gettype() utvrduje tip promenljive koju joj prosledite i vraca znakovnu vrednost sa imenom tipa, koje može biti boolean, integer, double, string, array, object, resource ili NULL. A ako nije ni jedan od standardnih tipova, funkcija vraca tekst uknown type.

Funkcija settype() menja tip promenljive koju joj prosledite u novi tip u obliku znakovne vrednosti u drugom argumentu. To može biti jedan od tipova sa predhodne liste.

Primer:

$a =56;
echo gettype($a).'
';
settype($a, 'double');
echo gettype($a).'
';

U prvom pozivu funkcije gettype, promenljiva $a je celobrojnog tipa.
Nakon ozivanja funkcije settype, tip promenljive $a je promenjen u double.

Postoje i funkcije za ispitivanje tipova podataka. Te funkcije su:

  • is_array
  • is_double, is_float, is_real, (sve je to ista funkcija)
  • is_long, is_int, is_integer, (sve je to ista funkcija)
  • is_string
  • is_object
  • is_resource()
  • is_null()
  • is_scalar - ispituje da li je promenljiva skalarnog tipa
  • is_numeric - ispituje da li je promenljiva neka vrsta broja ili
    znakovne vrednosti koja se može pretvoriti u broj
  • is_callable - ispituje da li vrednost promenljive ima postojece funkcije

Ispitivanje stanja promenljive

Postoji nekoliko funkcija za ispitivanje stanja promenljivih.
Funkcija isset ima sledeci prototip:

boolean isset (promenljiva);

Funkcija isset vraca true ako je promenljiva definisana, a u suprotnom vraca false. Funkciji možete proslediti i listu imena razdvejenih zarezima, a isset ce vratiti true ako su definisane sve promenljive na listi.

Definiciju promenljive možete poništiti pomocu funkcije unset, koja ima prototip:

void unset (mixed promenljiva);

Funkcija unset poništava definiciju promenljive koju joj prosledite.

Fumkcija empty ispituje da li promenljiva postoji i da li ima vrednost koja nije nula odnosno nije prazna, i vraca true ili false.
Funkcija empty ima sledeci prototip:

boolean empty (mixed var);

Ponovno interpretiranje promenljivih

Sledece tri funkcije imaju isti efekat kao konverzija promenljive:

int intval (mixed promenljiva [, int baza]);
float floatval (mixed promenljiva);
string strval (mixed promenljiva);

Sve tri funkcije vracaju vrednost prosledene promenljive, konvertovanu u odgovarajuci tip redom u ceo broj, u realan broj i u znakovnu vrednost.

Tut by N/A

Sign In or Register to comment.

Welcome

It looks like you're new here. If you want to get involved, click one of these buttons!

Discussions