Daca ati citit tutorialul Pimi pasi in PHP sigur ati observat $mere=5 si probabil v-ati dati seama ca este o variabila
care a primit valoarea 5, dar ca sa nu o dau in filozofii ca alte tutoriale o sa prezint tipurile de baza ale variabilelor si declararea acestora.
PHP are 8 tipuri de varabile: integer(numere intregi),string(siruri de caractere), boolean(true sau false),float(numere cu virgula mobila), array(vectorii),object(tipul specific obiectelor unei clase),resource(pastreaza refererinte catre anumite resurse) si null(se atribuie unei variabile sau constante neinitializate).
Obs. O variabila trebuie sa inceapa tot timpul cu $
1.integer exemplu:
<?php $primul=1; $utlimul=9; $rezultat=$primul+ultimul; echo $rezultat; //sau echo $primul+$ultimul; ?>
Aici ar mai trebui specificat ca orice valoare true va fi convertita la 1 iar orice valaore false va fi convertita la 0, dar despre conversii va fi un tutorial separat.
2.string exemplu:
<?php $string='<b>Ana are mere</b>'; echo $string; ?>
Aici apar cateva chestii interesante ca includerea " sau a unui tab, linie noua etc
-pentru " se foloseste "\"" adica " precedat de \
-pentru $ se foloseste "\$" ;
-pentru tab "\t";
-pentru linie noua se foloseste "\n";
-pentru sfarsit de line se folose "\r";
Apare aici si declararea sirurilor prin operatorul "<<<" adica heredoc
<?php $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; echo $str; ?>
Sau string html de forma
<?php $str=<<<HTML<b>micul-programator</b><i>sursa ta de cunostinte</i>HTML; echo $str; ?>
3.float exemplu :
<?php $nrfloat=2.2; $nrfloat_doi=1.7; echo $nrfloat+$nrfloat_doi; ?>
Rezultatul poate fi un numar float sau integer.
In php ca si in alte limbaje tablourile sunt foarte importante mai ales ca PHP are variabile super globale care pastreaza
datele ca tablouri.
Exemple:
<?php 'Vasile'=>'Suceava', 3=>'Cluj'); //pentru a putea apela datele array-ului se foloseste : $array['cheie'] echo $date['Ionica'].'</br>'; //Bucuresti echo $date[3].'</br>'; //Cluj //penrtu a vedea toate cheile se foloseste functia array_keys <?
5.Prin tipul obiect intram in sfera oop adica a programarilor orietata pe obiecte, ca sa intelegeti acest concept ganditi-va la telefonul care il folositi zilnic, el este o clasa de obiecte si doar prin intermediul unor butoane puteti sa lucrati cu el, asa este si cu oop doar prin intermediul unor date membre publice o sa lucrati cu accea clasa.
Exemplu:
<?php class Mp { //date membre private $date='Ana are mere'; //defenim o metoda public function afiseaza() { } } //definim obiectul (tipul obiect) $ob = new Mp(); echo $ob->afiseaza(); //Ana are mere ?>
Mai multe despre tipul obiect vor fi prezentate in tutorialul despre oop.
6. Tipul resursa pastreaza referinta catre anumite resurse, exemplu o conexiune la baza de date.
7. Pentru tipul NULL nu cred ca trebuie sa specific ceva, deoarece oricine intelege din context la ce se refera, oricum detalii aici
8. Tipul boolean exemplu
<?php $var=true; //verificam daca este true if ($var) { echo 'Variabila este true'; }else{ echo 'Variabila este false'; } ?>
//obs. orice valoare intreaga > 0 va fi convertita la true, un array vid va fi converiti la false
Cam atat despre variabile, acum sa vorbim despre constantele PHP. Probabil deja ati intuit inca din nume ca o variabila are o valoare "variabila" iar o constanta are o valoare "constanta".
Pentru a defini o constanta se foloseste functia define()
<?php echo NUME; ?>
De mentionat este faptul ca este o conventie ca numele de constante sa fie scrise cu litere mari, nu este obligatoriu insa este recomandat.
Asa cum sunt variabile predefinite asa sunt si constante numite "constante magice":
Nume | Descriere |
__LINE__ | Intoarce numarul liniei la care este apelata. |
__FILE__ | Intoarce numele fisierului in care este apelata . |
__DIR__ | Intoarce calea catre fisierul unde se afla fisierul in care este apelata. |
__FUNCTION__ | Intoarce numele functiei in care este apelata |
__CLASS__ | Intoarce numele clasei in care este folosita |
__TRAIT__ | Intoarce numele trasaturi in care este folosita, e un concept mai nou |
__METHOD__ | Intoarce numele metodei in care este folosita ex : Test::mp |
__NAMESPACE__ | Intoarce numele namespace-ului. |
PHP are 9 tipuri de operatori dintre care importati sunt TOTI, nu exista operator neimportant( asta fiindca ma intrbat cineva de ce i-ar folosi lui operatori pe biti).
1. Operatori aritmetici: +,-,*,/ si %(modulo)
<?php $a=1; $b=2; echo $a+$b;//3 echo $a-$b;//-1 echo $a/$b;//0.5 echo $a*$b;//2 echo $a%$b;//1 ?>
2. Operatori de atribuire, operatorul clasic de atribuire este "=" insa sunt si combinatii intre el si alti operatori
<?php $a=1;//adribuim lui a valoare 1 $a+=$a;//valoarea lui $a este 2 , varianta normala este $a=$a+$a //lui $a i se atribuie 1+1 adica 2. ?>
In acest fel se pot folosi si ceilati operatori pe langa operatorul de atribuire.
3. Operatori de Comparare "==","===","!==","<",">","<=",">=";
<?php $a=true; $b=1; if($a==$b){ echo 'egalitate'; // va returna egalitate (raspunsul este mai sus in tipurile de variabile) } if($a===$b){ echo 'identice'; //pentru a obitine identice se foloseste operatorul "!=="; }else{ echo 'diferite'; //va returna diferite } if($a<b){ echo '$a<$b'; } //operatori gen "<=" se folosesc prin bucle sau chiar alte expresii ?>
4. Operatori Logici ca: OR( || ), AND( && ), NOT( ! ).
<?php $a=1; $b=2; if($a&&$b){ echo 'and '; //va returna and daca ar fi fost $b=false atunci nu se indeplinea conditia. } //cu alte cuvinte daca ambele expresii "legate" prin && trebuie sa fie adevarate //pe cand la || una dintre ele trebuie sa fie adevarata if(!$b){ echo 'false'; } ?>
5.Operatorul de "ascundere" a erorilor
In PhP operatorul "@" va permite controul afisari unei erori, daca o expresie este precedata de @ si ea returneaza o eroare acea eroare nu este afisata, ea fiind ignorata.
6.Operatorul de prioritate
Dupa cum banuiesc ca stiti de la matematica operatia de inmultire este prioritara in fata adunari de accea in matematica se folosesc (), in php se foloseste acelasi concept adica:
<?php $exp = (1+5)*4; echo $exp; //24 si nu 21 din cauza ca operatia din () are prioritate ?>
Tot pe acest operator se beazeaza si atribuirea unei varabile direct intr-o conditie de egalitate. exemplu:
<?php if (($b=1)==1) { echo '$b=1'; //va returna $b=1 la fel se poate face si cu pasarea unei valori de la o functie } ?>
7.Operatorul Ternar "? : "
Evaluiaza o expresie , daca este adevarata atunci expresia va lua prima valoare de dupa ? daca nu valoarea de dupa : , exempu:
<?php $este = true; $a = $este ? 1 : 0; echo $a; //va afisa 1 ?>
8. Operatori de incremetare si decrementare(++ si --);
De exemplu o varabila $a=1 ; daca se va afisa $a++ ea va primi 2, pentru decrementare va primi valoare 0;
O sa intgelegi acest operator cand vom face bucla for si foreach
9. Operatori pe biti &, "|, ~, ^, <<, >>"
Operatori pe biti ca si in celelalte limbaje sunt o categorie mai delicata, vom vorbi mai mult despre ei cand va veni momentul sa ii utilizam, pana atunci o sa dau doar cate detalii despre ei
| -> disjunctie asemantor cu OR (||);
& ->conjunctie asemanator cu AND (&&);
^ -> XOR;
~ -> asemnator cu negatia NOT;
<<->deplasare pe biti la stanga;
>>->deplasare pe biti la dreapta;
Cam atat in acest tutorial, ne mai auzim in tutorialele viitoare , acest tutorial nu poate fi copiat fara precizarea sursei si a autorului.