PHP Variabile, operatii si structuri de control

PHP-ul este un limbaj asemanator cu C, C++ si intruneste majoritatea operatiilor si structurilor de control folosite in orice limbaj de programare robust. Php-ul nu este case sesitive, astfel variabilele sau functiile pot fi scrise atat cu litere mari cat si mici, insa dintre metodele folosite de programatori sunt recomandate 2, pentru a putea reutiliza codul cu usurinta si de catre alte persoane:
1) camel case – scrierea numelui unei variabile legat, fiecare cuvant ce formeaza variabila sau functia incepand cu litera mare Ex: camelCase();
2) underscore – despartirea cuvintelor prin linia de jos (underscore) Ex: functie_cu_underscore();
Pentru cei ce doresc informatii complete despre PHP pot vizita site-ul: http://www.php.net/manual/en/.

PHP permite declararea atat a variabilelor cat si a constantelor, acestea putand fi de mai multe tipuri – integer, boolean, string.
Pentru constante se foloseste functia define: define(“CONSTANTA”,”valoare”); trebuie avut grija insa, ca numele sa inceapa cu litera.
Variabilele sunt de 2 tipuri:
a) globale – cele definite de utilizator in cadrul unui script Ex: $variabila.
b) superglobale – incepand cu versiunea 4.2 s-a optat pentru ca optiunea register_globals sa fie off, ea fiind invechita incepand cu PHP 5.3; aceasta optiune permitea folosirea unor prescurtari pentru diverse variabile, cum ar fi $DOCUMENT_ROOT in acum se foloseste $_SERVER[‘DOCUMENT_ROOT’];
Variabilele globale care se pastreaza sunt: $_GET, $_POST, $_COOKIE, $_ENV, $_SESSION, $_SERVER, $_REQUEST, $_FILES, acestea fiind vectori si pentru vizualizarea lor se foloseste functia print_r(); Variabilele $_GET si $_POST sunt folosite pentru a inregistra actiunile si optiunile introduse in formulare si pentru a le prelucra. $_COOKIE si $_SESSION sunt folosite pentru a stoca unele informatii legate de utilizator – username, preferinte… $_SERVER este folosit pentru a primi informatii de la server-ul pe care este hostat site-ul, informatiile pot fi si despre utilizator (ce browser foloseste, ip-ul cu care intra pe site…)
Pentru comentarii se folosesc //comentariu in linie si /** comentariu bloc */ si de aceea in continuare voi folosi si eu // pentru explicatii suplimentare. Cea mai folosita functie in PHP este echo($variabila), ea afiseaza ce contine $variabila, se mai poate folosi si echo ‘text'; si afiseaza text. Functia echo permite si concatenarea mai multor texte inainte de afisare, echo ‘Ana ‘.’are’.’mere.'; va afisa “Ana are mere.”, atentie prin punct se concateneaza 2 texte insa se poate folosi si pentru punctuatie ‘.’, astfel propozitia are si punct la sfarsit.
Si asa am ajuns in partea de operatii, prima operatie deja ati vazut-o concatenarea a doua siruri. PHP-ul suporta operatiile aritmetice de baza, cu proprietatile lor adunare, scadere, inmultire, impartire, sunt comutative si asociative, dupa caz. $i++ inseamna incrementarea valorii lui $i, echivalent cu $i+1, $i– decrementare.
$i==$j se foloseste pentru a compara echivalenta, $i===$j verifica echivalenta, si in plus verifica daca sunt si de acelasi tip. $i!=$j semnul “!” neaga ce urmeaza dupa el, astfel expresia este echivalenta cu $i<>$j si verifica daca valoarea lui i este diferita de valoarea lui j.
Pentru a ridica la patrat folosim functia pow(). $i+=$j; aduna la valoarea lui i, valoarea lui j, rezultatul este retinut in i ($i-=$j scade din i pe j).

Operatii la nivel de bit :
“si” $i & $j , rezultatul va avea bitii 1, acolo unde bitii din $i si $j vor fi 1, in rest va avea 0 Ex: daca i este 10011010 = 154 si b este 00101010 = 42 atunci rezultatul va fi 00001010 = 10;
“sau” $i | $j , rezultatul va avea bitii 1, acolo unde bitii din $i sau $j vor fi 1, deci va avea bitii 0 doar acolo unde ambele ii au 0;
“sau exclusiv” $i^$j , rezultatul va avea bitii 1, acolo unde bitii doar din $i sau din $j sunt 1, nu si in ambele;
“negarea” ~$i , schimba in cadrul lui i bitii 1 cu 0 si invers;
“deplasarea bitilor la dreapta” >> si “deplasarea bitilor la stanga” << daca pentru a transforma 00001010 din cod binar in baza 10 se inmulteste fiecare bit cu 2 la puterea corespunzatoare pozitiei, pozitia incepand de la bitul din stanga si prima fiind 0, la o deplasare la stanga se mareste aceasta putere cu numarul deplasarilor; iar o deplasare la dreapta scade puterea cu numarul deplasarilor. Ex: $i este in cod binar 00001010 $i << 2 va fi echivalent cu 00101000.
Unele dintre aceste operatii la nivel de biti sunt folosite in algoritmii de criptare intalniti actual, sau de dispersie (hash).

Operatiile logice sunt asemanatoare cu cele la nivel de bit:
$a and $b echivalent in scriere cu $a && $b rezultatul este adevarat doar daca ambele valori sunt adevarate.
$a or $b echivalent cu $a || $b rezultatul este fals doar daca atat $a cat si $b sunt false.
$a xor $b este adevarat daca una dintre valori este adevarata, dar nu ambele.
!$a reprezinta negarea lui $a, daca este adevarat devine fals si invers.

PHP-ul are implementate structurile:
– de decizie: if (conditie1) {actiune1 } else { actiune2} // in loc de else poate fi pus elseif(conditie2){actiune2}elseif(conditie3){actiune3}.
switch (conditie){ case 1: (actiune1) break; … case n: (actiune n) break; default: (actiunea implicita, daca niciunul dintre cazurile speciale nu este intalnit).
– repetitive: for (expr1, expr2, expr3) { actiune care se repeta } // Ex: for ($i=1;$i<4;$i++) {echo $i;} va afisa valoarea lui i (1,2,3).
foreach ($vector as $variabila) {actiune} // se foloseste pentru a accesa elementele unui vector.
while (conditie) {actiune care se repeta pt cazurile in care este indeplinita conditia}.
Exemple si o detaliere a acestor structuri poate fi intalnita la pagina http://www.php.net/manual/en/language.control-structures.php, insa ele vor mai fi intalnite si explicate in tutorialele viitoare.
PHP-ul ca si alte limbaje de programare suporta si forma scurta pentru if: $variabila = (conditie) ? (expresia1 adevarata) : (expresia2 adevarata) // echivalent cu if (conditie) {$variabila = expresia1 } else { $variabila = expresia2} Ex: $culoare = ‘verde';
echo ($culoare == ‘albastru’)?’albastru':’verde'; // va afisa verde, este o solutie de o linie, pentru cei mai lenesi, insa nu suporta si elseif.

Acum pentru cei ce au ajuns la capatul acestui articol, am cateva intrebari si nu am pus poll pentru ca ma intereseaza parerea celor care chiar citesc astfel de tutoriale, nu care pot da doar un click. INTREBARI: Considerati ca acest tutorial a fost folositor? Despre ce v-ar interesa sa cititi in aceasta sectiune?

6 thoughts on “PHP Variabile, operatii si structuri de control”

    1. Mai sunt cateva tutoriale, html, mysql si php care pun bazele.
      Si cand voi avea timp, o sa mai scriu tutoriale, care sper sa raspunda la o parte din intrebari, si in plus, pot raspunde prin comentarii.

  1. Adevarat…. Foarte prost structurat in pagina…ai vazut la tutorialele profesionale cum sunt asezate, folosindu-se si de anumite taguri (table, b, etc) …..Cat despre continut, de acord….un incepator nu ar intelege nimic, iar un stiutor al bazelor PHP, nu i-ar folosi cu NIMIC tutorialul….
    Oricum, felicitari pentru munca depusa si nu te supara pe mesajul de mai sus :)

    1. Poate ca ai dreptate, la operatiile pe biti si cele logice, puteam pune table-uri, insa nu am avut aceasta idee atunci (designul nu e punctul meu forte). Eu am invatat mai multe limbaje, cam fiecare carte de programare incepe cu asa ceva, dar mi-am dat seama ca cel mai bine se explica concret. Asa ca aici sunt bazele pentru urmatoarele tutoriale de PHP si acolo vor fi folosite notiunile de mai sus, vor fi adaugate altele si exemplificate pe cazuri concrete. Tot in functie de caz o sa pun si SQL (pentru MySQL) si o sa-l exemplific.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>