limbajul php - cursuri automatica si...

89
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Programare Programare Web Web Limbajul Limbajul PHP PHP Limbajul Limbajul PHP PHP Ciprian Dobre [email protected] Programare Web – Curs 3 1

Upload: others

Post on 21-Feb-2020

27 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ProgramareProgramare WebWeb

LimbajulLimbajul PHPPHPLimbajulLimbajul PHPPHP

Ciprian [email protected]

Programare Web – Curs 3 1

Page 2: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ObiectiveObiectiveObiectiveObiective• Obiectivul acestui curs un este o prezentare completă a

li b j l i PHP i i t dlimbajului PHP ci o introducere.

• Limbajul este simplu, ușor de învățat, semănând cu alte j p ș țlimbaje de programare deja studiate.

• Există o multitudine de cărți și documentații accesibileExistă o multitudine de cărți și documentații accesibile online din care se pot aprofunda diversele aspecte ale limbajului și folosirii acestuia.

• În cursurile de PHP vom prezenta atât interfața sa cu SGBD-ul MySQL cât și scurte exemple de lucru cu OracleSGBD ul MySQL cât și scurte exemple de lucru cu Oracle și ODBC.

Programare Web– Curs 3 2

Page 3: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

IntroducereIntroducereIntroducereIntroducere• PHP a reprezentat inițial o abreviere pentru “Personal

Home Pages tools” şi a fost creat în 1994 de RasmusHome Pages tools şi a fost creat în 1994 de Rasmus Lerdorf.

• În primele versiuni (PHP/FI) el conţinea suport doar pentru p ( ) ţ p ppachetul de baze de date mSQL (mini SQL).

• Zeev Suraski șiAndi Gutmans au rescris parserul în 1997, formând prima versiune matură a PHP (3), redenumit în ‘PHP: Hypertext Processor’

• PHP poate fi folosit în conjuncţie cu o largă listă de SGBD-• PHP poate fi folosit în conjuncţie cu o largă listă de SGBD-uri, atât comerciale cât şi necomerciale (free software) incluzand MySQL, dBase, Oracle, DB2, PostgreSQL, S base InterBase SQLSer er ODBC etcSybase, InterBase, SQLServer, ODBC, etc.

• În 2004 a fost prezentat PHP 5, având la bază nucleul Zend Engine IIZend Engine II

• PHP 6 este la ora actuală în curs de dezvoltare.Programare Web– Curs 3 3http://en.wikipedia.org/wiki/PHP

Page 4: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

IntroducereIntroducereIntroducereIntroducere• Ca pachet, PHP poate fi instalat atât ca un p , p

interpretor de sine stătător (deci un CGI separat) cât şi ca un modul pentru serverulseparat) cât şi ca un modul pentru serverul de web (Apache).

• Pachetul poate fi instalat de asemenea sub Windows IIS/PWS si Apache.p

• Informaţii complete despre instalare şi fi î di i t t fi ă itconfigurare în diverse variante pot fi găsite

în manualul care îl însoţeşte.

Programare Web– Curs 3 4

Page 5: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

InserareInserare codcodInserareInserare codcod• Introducerea de inserturi scrise în PHP în fişierele

HTML poate fi făcută în mai multe moduri (funcţiaHTML poate fi făcută în mai multe moduri (funcţia echo are acelaşi efect cu printf din limbajul C):

1.<?php echo "Varianta 1 tip XML\n"; ?>

2 ? h "V i t 2 i i l \ " ?2.<? echo "Varianta 2, cea mai simpla\n"; ?>

3.<script language="php">3. script language php

echo "Varianta 3, tip limbaj pentru scripturi";

</script>;

4.<% echo "varianta 4, tip ASP"; %>Programare Web– Curs 3 5

Page 6: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

InserareInserare codcod• Pentru folosirea unora dintre aceste

InserareInserare codcod

variante interpretorul de PHP trebuie configurat corespunzător (variantele 2 și 4)configurat corespunzător (variantele 2 și 4)

• Opțiunile respective se găsesc în fișierul de configurare php.ini

; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized. ; NOTE: Using short tags should be avoided when developing applications or ; libraries that are meant for redistribution, or deployment on PHP ; servers which are not under your control, because short tags may not ; be supported on the target server For portable redistributable code; be supported on the target server. For portable, redistributable code, ; be sure not to use short tags. short_open_tag = On

All ASP t l <% %> t

Programare Web– Curs 3 6

; Allow ASP-style <% %> tags. asp_tags = Off

Page 7: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DescriereDescriereDescriereDescriere• Insertul poate conţine o singură instrucţiune, ca

în exemplele de mai sus, sau mai multe instrucţiuni.

• Formatul instrucţiunilor este liber, putându-se continua pe mai multe liniicontinua pe mai multe linii.

• Ca şi în C fiecare instrucţiune este terminată cu t i i lăpunct şi virgulă.

• Directiva de închidere bloc php ține și loc de ;p p ț ș

Programare Web– Curs 3 7

Page 8: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempleExempleExempleExemple• Obișnuit:

<?phph ‘H ll ld'echo ‘Hello world';

?>• Fără ; în final de bloc:

h h ‘H ll ld' <?php echo ‘Hello world' ?>• Fără directiva de închidere la ultimul bloc (dar cu ă ă d ec a de c de e a u u b oc (da cu

; !)<?php echo ‘Putem omite directiva in final';<?php echo Putem omite directiva in final ;

Programare Web– Curs 3 8

Page 9: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ComentariiComentariiComentariiComentarii• Comentariile sunt ca și in C / Unix shell:ș

<?phpecho ‘Test'; // Comentariu pe linie/* Comentariu pe/ Comentariu pe

potential mai multe linii */echo ‘Ceva'; # Comentariu pe linie?>?>

Programare Web– Curs 3 9

Page 10: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipuriTipuri șșii variabilevariabileTipuriTipuri șșii variabilevariabile• PHP este un limbaj interpretat. În consecință nu este

ă d l i bil lnecesară declararea variabilelor.

• O variabilă împrumută tipul valorii stocate în ea la momentul respectiv.

• O variabilă își poate schimba tipul pe parcursul execuției scriptului PHP.

• O variabila se creează în momentul în care se depune o valoare în ea.

• Pentru conversia între tipuri (daca e necesară) se pot p ( ) pfolosi construcţii de conversie de tip cast similare cu cele din C sau funcţia settype.

Programare Web– Curs 3 10

Page 11: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipuriTipuriTipuriTipuri• Există 8 tipuri de date în PHP: 4 tipuri scalare,

două compuse și două speciale1. Boolean2.Integer3 Float (include double)3.Float (include double)4.String5.Array6.Objectj7.Resource8 Null8.Null

Programare Web– Curs 3 11

Page 12: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabileVariabileVariabile• Numele oricărei variabile este prefixat cu simbolul $.

• Acesta e un marcaj de variabilă și nu face efectiv parte din nume.

• Pentru aflarea tipului unei variabile se poate folosi funcția gettypep p ț g ypsau var_dump.

• Instrucţiunea de atribuire este identică cu cea din limbajul C.

• Dacă variabila nu este deja definită, ea se crează automat:

$nume = "Ion";$nume = "Ion";$adresa = "Bucuresti";$sir = "1234";$ ;$numar = (int) $sir; // exemplu de cast

Programare Web– Curs 3 12

Page 13: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Colectarea memorieiColectarea memorieiColectarea memorieiColectarea memoriei• În PHP memoria este automat colectată –

programul cunoaște când o variabilă nu mai este folosită și colectează automatmai este folosită și colectează automat memoria ocupată de aceasta

• Singura excepție: conexiunile cu bazele de date

Programare Web– Curs 3 13

Page 14: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul BooleanBooleanTipulTipul BooleanBoolean• O variabilă de tip Boolean poate conține valoarea True

F lsau False.

• În cazul conversiei la Boolean, sunt considerate False(printre altele):– Literalul FALSE– Valoarea întreagă sau reală (float, double) 0 (zero)

– Un șir vid

– Șirul "0"

– Un array cu 0 elemente

Ti l i l NULL (i l â d i bil l t t i i t t )– Tipul special NULL (incluzând variabilele ne-setate = inexistente)

• Orice altă valoare este considerată True (inclusiv orice resursă)resursă)

Programare Web– Curs 3 14

Page 15: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul îîntregntregTipulTipul îîntregntreg• Specificarea se poate face în bazele 10, 8 p p ,și 16:

h<?php$a = 1234; // zecimal$a 1234; // zecimal$a = -123; // zecimal, negativ$a = 0123; // octal$a = 0x1A; // hexazecimal$a = 0x1A; // hexazecimal?>

Programare Web– Curs 3 15

Page 16: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

NumereNumere îîntregintregiNumereNumere îîntregintregi• Dacă o cifră este incorectă restul cifrelor se ignoră:

? h<?php$a = 123EU4PLECLA5678; // 123$a = 012389; // octal 0123$a 012389; // octal 0123$a = 0x1ASPARAGUS; // hexa 0x1A?>

• Dacă se depășește capacitatea de reprezentare pentru întregi (~2^31), valoarea devine automat float.

• La conversia de la float la intreg numărul e rotunjit spre 0• La conversia de la float la intreg numărul e rotunjit spre 0.• Dacă se depășește capacitatea de reprezentare pentru întregi

rezultatul este nedefinit (nu se emite nici o atenționare!)• La conversia de la string la număr se ia prefixul întreg al numărului

(ca mai sus):$a = 1 + “3 iezi cucuieti”; // $a devine 4$a = 1 + 3 iezi cucuieti ; // $a devine 4$a = “3 iezi cucuieti” + 1; // $a devine 4

Programare Web– Curs 3 16

Page 17: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul real (float, double)real (float, double)TipulTipul real (float, double)real (float, double)• Se pot scrie în formatul uzual sau exponențial:

<?php$a = 1.234;$a 1.234;$b = 1.2e34;$ 12E 34$c = 12E-34;?>

• Valorile limită sunt dependente de platformă, dar uzual numerele sunt până la ~1.8e308 cu o precizie de 14 cifre.

• Conversia de la șir la float se face similar cu cea a întregilor (până la primul caracter care nu face parte dintr-o reprezentare corectă de număr real).

Programare Web– Curs 3 17

Page 18: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul ARRAYARRAYTipulTipul ARRAYARRAY• Un tablou PHP este o succesiune de

perechi (cheie, valoare).Li i i t bl i i ti• Li se mai spune și tablouri asociative.

• Un tablou poate fi exploatat în modul clasicUn tablou poate fi exploatat în modul clasic (chei pornind de la 0 ca în C) sau ca tablou asociativ (acces prin cheie cheile putândasociativ (acces prin cheie, cheile putând să nu fie succesive și nici numerice.

Programare Web– Curs 3 18

Page 19: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempleExempleExempleExemple<?php

$a = array(“pw" => “examen"$a = array( pw => examen ,4 => ”an terminal”,“succes” =>true);

echo $a[“pw”], $a[4] // examen an terminal// $b = array cu 2 dimensiuni

$b = array(“medii" => array(1 => 9 45 2 => 9 5 3$b array( medii > array(1 > 9.45, 2 > 9.5, 3=> 8.12, 4 => 9.90, “stat”=>10));

echo $b[“medii"][2]; // 9.5h $b[“ dii"][“ "] // 10echo $b[“medii"][“stat"]; // 10

// $c e identic cu $b$c = array(“medii" => array(1 => 9.45, 9.5, 8.12,$ y( y(

9.90, “stat”=>10));echo $c[“medii"][2]; // 9.5echo $c[“medii"][“stat"]; // 10echo $c[ medii ][ stat ]; // 10

?>Programare Web– Curs 3 19

Page 20: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul ArrayArrayTipulTipul ArrayArray• Cheia trebuie să fie scalară (un alt array ( y

sau obiect)Adă î ă i l t h i• Adăugarea încă unui element cu cheie maximă negativă adaugă o pereche cu cheia 0 (începând cu v4.3.0)

• Cheia TRUE devine 1• Cheia TRUE devine 1• Cheia FALSE devine 0• Cheia NULL devine șirul vid

Programare Web– Curs 3 20

Page 21: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempluExempluExempluExemplu$regiune = array(-12 => “Oltenia”);// o variabila de tip array cu cheia// maxima -12// maxima 12// Adaugam noi elemente si vom crea noi// hi h i i d 0// perechi cu chei incepand cu 0:$regiune[] = "Muntenia"; // elementul 0$regiune[] = "Moldova"; // elementul 1• În lipsă, cheile pleacă de la 0:În lipsă, cheile pleacă de la 0:

$orase = array(“Bucuresti”, “Ploiesti”,“C i ”) // h i 0 1 2“Campina”) // chei 0, 1, 2

Programare Web– Curs 3 21

Page 22: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ConversiiConversiiConversiiConversii• La conversia din tipurile întreg, real, string,

boolean și resursă în tipul array se crează un tablou cu un singur element cu cheia 0 și valoarea respectivă.

• Dacă se convertește un obiect la array obținemDacă se convertește un obiect la array, obținem un array având ca elemente proprietățile obiectului Mai multe amănunte în documentațiaobiectului. Mai multe amănunte în documentația PHP.C i i l i l l d l• Conversia unei valori nule la array duce la un array vid (Atenție: vid nu înseamnă nul!)

Programare Web– Curs 3 22

Page 23: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ComparaComparațțiiiiComparaComparațțiiii• 2 tablouri se pot compara astfel:p p

– Egalitate: $a == $b adevărat daca au aceleași perechi (cheie valoare)perechi (cheie, valoare)

– Identitate: $a === $b adevărat dacă au aceleași perechi (cheie, valoare) în aceeași ordine și cu aceleași tipuri

– Inegalitate: $a <> $b sau $a != $b. Inversa egalității.egalității.

– Nonidentitate: $a !== $b. Inversa identității.

Programare Web– Curs 3 23

Page 24: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ComparațiiComparațiiComparațiiComparații• Se pot afla diferențele dintre 2 tablouri folosind funcția

dif t ă l il di tarray_dif care returnează valorile dintr-un array care nu se găsesc în al doilea:

h<?php$array1 = array(“ion", “vasile", “ion", “elena");$$array2 = array(“vasile", “ion", “mia");$rezultat = array_diff($array1, $array2);print_r($rezultat);// rezultat: [3]=>“elena”

?> Afișează informații despre conținutul unor variabile în format human-readable.

P t l l t fi ă

Programare Web– Curs 3 24

Pentru exemplul nostru se afișează:Array ( [3] => elena )

Page 25: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ReuniuneReuniuneReuniuneReuniune• Două tablouri se pot reuni folosind operatorul +:

$c = $a + $b$c = $a + $b

• Rezultatul conține perechile primului array la care se adaugă perechile din al doilea array cu o cheie care nu există în primul.

• Exemplu:

<?php

$array1 = array(“ion", “vasile", “ion", “elena");

$array2 = array(“vasile", “ion", “mia");

$rezultat = $array2 + $array1;

print_r($rezultat);

?>

• Vom obține un tablou cu 4 elemente: elementele din array2 (chei 0, 1, 2) și ultimul element din array 1 (cheia 3):ultimul element din array 1 (cheia 3):

(“vasile", “ion", “mia“, “elena")Programare Web– Curs 3 25

Page 26: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempluExempluExempluExemplu• Același exemplu, însă altă adunare:

h<?php

$array1 = array(“ion", “vasile", “ion", “elena");

$ 2 (“ sil " “i " “ i ")$array2 = array(“vasile", “ion", “mia");

$rezultat = $array1 + $array2;

print r($rezultat);print_r($rezultat);

?>

• Vom obține un tablou cu 4 elemente: elementele din array1 (chei 0 1 2 si 3)Vom obține un tablou cu 4 elemente: elementele din array1 (chei 0, 1, 2 si 3) și nici un element din array 0 (pentru că toate cheile deja există):

(“ion", “vasile", “ion“, “elena")

Programare Web– Curs 3 26

Page 27: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul ObiectObiectTipulTipul ObiectObiect• Un obiect se declară prin folosirea operatorului

new urmat de un constructor de clasă:$objectName = new ClassName();$objectName new ClassName();$objectName = new ClassName(97.58, 1);

• Metodele și proprietățile unui obiect se accesează folosind ->.$Checking->getBalance();$Ch kN b 1022$CheckNumber = 1022;$Checking->getCheckAmount($CheckNumber);g g ( )

Programare Web– Curs 3 27

Page 28: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ClaseClaseClaseClase• Pentru crearea unei clase se folosește cuvântul

cheie class:class ClassName {class ClassName {// membrii și funcţii membre}

• Numele claselor poate fi obținut cu get class:• Numele claselor poate fi obținut cu get_class:$Checking = new BankAccount();echo 'The $Checking object is instantiated from the ‘.

get_class($Checking) . “class.</p>";

Programare Web– Curs 3 28

Page 29: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Clase externeClase externeClase externeClase externe• Clasele pot fi declarate în fișiere externe, p ș ,

caz în care se pot folosi funcțiile:include()– include()

– require()– include_once()

i ()– require_once()

Programare Web– Curs 3 29

Page 30: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Specificatori de accesSpecificatori de accesSpecificatori de accesSpecificatori de acces• Specificatorii de acces determină drepturile de acces

asupra membrilor unei claseasupra membrilor unei clase

• În PHP există trei nivele de protecție:bli– public

– private

– protected

• Public – oricine are acces la membrii clasei

• Private – se restricționează dreptul de acces asupra membrilor claseiclass MyClass {

private $id = 18;

bli f ti tId() { t $thi id }public function getId() { return $this->id; }

}Programare Web– Curs 3 30

Page 31: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempluExempluExempluExempluclass Person { $judy = new Person();

private $name;

function construct($name) {

$judy->setName("Judy");

$joe = new Person();

$function __construct($name) {$this->name = $name;

}

$joe->setName("Joe");

print $judy->getName() . "\n"; //print Judy

function setName($name) {$this->name = $name;

}

//print Judy

print $joe->getName(). "\n"; //print Joe}

function getName() {return $this->name;

$judy = new Person("Judy");

$joe = new Person("Joe");$ ;}

};print $judy->getName();

print $joe->getName();

Programare Web– Curs 3 31

Page 32: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Proprietăți staticeProprietăți staticeProprietăți staticeProprietăți statice

l M U i IdCl {class MyUniqueIdClass {

static $idCounter = 0;

public $uniqueId;

function construct() {

$obj1 = new MyUniqueIdClass();

print $obj1->uniqueId . "\n"; // i t 1function __construct() {

self::$idCounter++;$this->uniqueId = self::$idCounter;

}

//print 1

$obj2 = new MyUniqueIdClass();

p i t $ bj2 > i Id "\ "; }}

print $obj2->uniqueId . "\n"; //print 2

Programare Web– Curs 3 32

Page 33: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Clonarea obiectelorClonarea obiectelorClonarea obiectelorClonarea obiectelor

class MyClass {class My lass {

public $var = 1;

}}

$obj1 = new MyClass();

$obj2 = $obj1;

obj1

object $obj2 = $obj1;

$obj2->var = 2;

print $obj1 >var; //print 2

obj2

print $obj1->var; //print 2

$obj1 = new MyClass();obj1 object

$obj2 = clone $obj1;

$obj2->var = 2;

$obj2 object

Programare Web– Curs 3 33

print $obj1->var; //print 1j

Page 34: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

PolimorfismPolimorfismPolimorfismPolimorfism• Mecanism de moștenire a unei singure ș g

clase– Similar Java– Similar Java

• Însă se pot implementa mai multe interfețe

class Child extends Parent { class A implements B, C, ... {class Child extends Parent {...}

class A implements B, C, ... {...}

interface I1 extends I2, I3, ... {...}

Programare Web– Curs 3 34

}

Page 35: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul ObiectObiectTipulTipul ObiectObiect• … mai multe detalii la orele de laborator.• Dacă o valoare de alt tip este convertită la

ti l bi t bți i t ță l itipul obiect, obținem o instanță a clasei stdClass.

• Dacă se convertește la obiect o valoare nulă noua instanță va fi vidănulă, noua instanță va fi vidă.

• Dacă un tablou se convertește la obiect șcheile devin proprietăți.

Programare Web– Curs 3 35

Page 36: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Tipul ResursTipul ResursăăTipul ResursTipul Resursăă• Tipul resursă este un tip special, variabilele de

acest tip conțin o referință către o resursă externa.

• Felul resursei se poate obține cu funcția get resource type (ex: mysql link file domxmlget_resource_type (ex: mysql link, file, domxml document, etc.).C i l ti l ă (di• Conversia la tipul resursă nu are sens (din definiția tipului)

• O resursă care nu mai este referită este detectată automat de 'garbage collector‘ și eliberată (deci g g ș (nu e necesară eliberarea manuală).

Programare Web– Curs 3 36

Page 37: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

TipulTipul NULLNULLTipulTipul NULLNULL• Tipul NULL are o singură valoare, NULL.

• O variabilă nula nu conține nici o valoare.

• O variabilă este considerată nulă dacă:1. I-a fost asignată valoarea NULL

2. Nu i-a fost asignată încă nici o valoare (deci eventual ea nu există).

3 A fost dealocată cu funcția unset($variabila)3. A fost dealocată cu funcția unset($variabila)

• O variabilă se poate testa dacă e nulă sau nu cu funcția is_null($variabila)._ ($ )

• O variabilă se poate testa dacă există sau nu (cazurile 2 și 3 de mai sus) cu funcția isset($variabila, …)

• O variabilă se poate testa dacă este goală cu empty($variabila). Sunt considerate goale variabilele care conțin echivalentul lui FALSE (inclusiv care conțin valoarea NULL)(inclusiv care conțin valoarea NULL).

Programare Web– Curs 3 37

Page 38: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabileVariabileVariabile• Numele variabilelor este prefixat cu $ (marcaj de

variabila).• Numele este case-senzitiv (literele mari suntNumele este case senzitiv (literele mari sunt

considerate diferite de cele mici).U t PHP î lit ă• Un nume corect PHP începe cu literă sau underscore și continuă cu litere, cifre și

dunderscore.• Variabilele pot conține referințe către alte p ț ț

variabile (adresa se prelevează cu &, ca în C). Exemplu:p

Programare Web– Curs 3 38

Page 39: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabileVariabileVariabile<?php$unu = 'Ceva';$doi = &$unu; // $doi e o referinta la $unu.$doi = "Altceva"; // Modificam $doiecho $unu; // Ambele contin acelasiecho $doi; // sir?>

• Nu se poate preleva cu & adresa unei expresii (doar a unei variabile).

• PHP inițializează variabilele cu valori implicite dar nu este bine să ne bazăm pe aceste valori (0 pentru numere, p ( pFalse pentru boolean, etc).

Programare Web– Curs 3 39

Page 40: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabile predefinitepredefiniteVariabileVariabile predefinitepredefinite• Există un număr mare de variabile predefinite (de

sistem) pe care scriptul le poate folosi.• Cele mai utilizate sunt:Cele mai utilizate sunt:

– $_GET, $_POST, $_COOKIES, $_REQUEST – conțin valorile transmise scriptului cu metodele GET, POST, cookie sau p , ,reuniunea lor

– $_SESSION – conține variabile care se pot folosi de o succesiune d ții d i t i f ă i d lde execuții de scripturi care formează o sesiune de lucru

– $GLOBALS – conține toate variabilele globale ale scriptului

• O descriere a acestor variabile și a altora din aceeași categorie se găsește în documentația PHP

Programare Web– Curs 3 40

Page 41: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DomeniulDomeniul (scope)(scope)DomeniulDomeniul (scope)(scope)• Variabilele sunt cunoscute în contextul în care au

fost create.• Cele definite în afara oricărei funcții sunt similareCele definite în afara oricărei funcții sunt similare

variabilelor globale din C.C l d fi it î f ții ( i i ) t l l• Cele definite în funcții (prin asignare) sunt locale acelei functii.

• Spre deosebire de limbajul C o variabilă globală nu este cunoscută în interiorul unei funcții decât țdacă este declarată cu global în acea funcție.

Programare Web– Curs 3 41

Page 42: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DomeniulDomeniul (scope)(scope)DomeniulDomeniul (scope)(scope)• Exemplul 1:

$a = 1; /* variabila globala */function Ecou() { function Ecou() {

$a = 2; /* se asigneaza o valoare variabilei locale */h $ /* ti i i bil l l */echo $a; /* tiparire variabila locala */

}Ecou();echo $a; /* tiparire variabila globala */echo $a; / tiparire variabila globala /

• Rezultat 21

Programare Web– Curs 3 42

Page 43: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DomeniulDomeniul (scope)(scope)DomeniulDomeniul (scope)(scope)• Exemplul 2:

$a = 1; /* variabila globala */function Ecou() { function Ecou() {

global $a$ 2 /* i l i bil i l b l */$a = 2;/* se asigneaza o valoare variabilei globale */echo $a;/* tiparire variabila globala */

}Ecou();Ecou();echo $a; /* tiparire variabila globala */

R lt t 22• Rezultat 22

Programare Web– Curs 3 43

Page 44: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Domeniul (scope)Domeniul (scope)Domeniul (scope) Domeniul (scope) • Un alt mod de a defini variabile globale cunoscute și în interiorul

funcțiilor este folosirea tabloului asociativ predefinit $GLOBALS,funcțiilor este folosirea tabloului asociativ predefinit $GLOBALS, având ca indici numele variabilelor globale:

• Exemplu:

$a = 1; /* variabila globala */function Ecou() {

$GLOBALS["a"] = 2; /* se asigneaza o valoarevariabilei globale */g

echo $GLOBALS["a"];/* tiparire variabila globala */}}Ecou();echo $a; /* tiparire variabila globala */echo $a; / tiparire variabila globala /

• Rezultat 22Programare Web– Curs 3 44

Page 45: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabile staticestaticeVariabileVariabile staticestatice• Ca și în C se pot defini variabile locale funcțiilor dar care își păstrează

valoarea de la un apel la altulvaloarea de la un apel la altul.

• Aceste variabile se numesc statice.

Variabilele statice pot fi inițializate cu o valoare care apoi se modifică• Variabilele statice pot fi inițializate cu o valoare care apoi se modifică și este păstrată pentru apelurile viitoare:

function Increment() { function Increment() { static $a = 0;echo $a;echo $a;$a++;

}}• Rezultatul apelului repetat al acestei funcții va fi afișarea numerelor 0,

1, 2, . . .

Programare Web– Curs 3 45

Page 46: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

MacrosubstituMacrosubstituțțieieMacrosubstituMacrosubstituțțieie• Numele unei variabile se poate găsi în altă variabila.

• Acest procedeu, numit macrosubstituție, este întâlnit și în alte limbaje, cum este Xbase (dBase, Fox, Clipper).

Instrucțiunile:• Instrucțiunile:

$a = "Limbajul";$$ " PHP"$$a = " PHP";

• definesc două variabile: $a cu valoarea “Limbajul” și $Limbajul cu valoarea “ PHP”valoarea PHP .

• În acest caz instrucțiunea:

echo "$a ${$a}";echo $a ${$a} ;va afișa Limbajul PHP

Programare Web– Curs 3 46

Page 47: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabile externeexterneVariabileVariabile externeexterne• În această categorie intră variabilele corespunzătoare simbolurilor primite de la un formular

și variabilele de mediu setate de serverul de web.

• Să presupunem că avem următorul formular:

<form action="actiune.php" method="post">Nume: <input type="text" name="nume"><br>Nume: <input type= text name= nume ><br>Localitate: <input type="text" name="adresa[localitate]"><br>Strada: <input type="text" name="adresa[strada]"><br>Num r: <input t p "t xt" n m " dr s [num r]"><br>Numar: <input type="text" name="adresa[numar]"><br>Optiuni: <br><select multiple name="so[]">

ti l "Wi d 95" Wi d 95<option value="Windows 95">Windows 95<option value="Windows XP">Windows XP<option value="Windows Vista">Windows Vista

i l "Li " Li<option value="Linux">Linux</select><input type="submit">

</form>

Programare Web– Curs 3 47

Page 48: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

VariabileVariabile externeexterneVariabileVariabile externeexterne• Scriptul actiune.php care tratează acest formular poate

i i i bil lprimi variabilele:– $nume, variabilă simplă

– $adresa, un tablou asociativ cu trei elemente

– $so, un tablou având atâtea elemente câte selecții s-au făcut în i l ti l di f lmeniul vertical din formular.

• Acest lucru se întâmplă însă doar dacă opțiunea de configurare a PHP register globals e setată pe Onconfigurare a PHP register_globals e setată pe On(implicit ea e însă Off, fiind potențial o breșă de securitate).securitate).

• În mod normal valorile celor 3 variabile se găsesc în $ POST și $ REQUEST$_POST și $_REQUEST.

Programare Web– Curs 3 48

Page 49: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ConstanteConstanteConstanteConstante• Constantele se definesc similar cu limbajul C, cu define:<?php

// Constante validedefine("MATERIE", "Programare Web");define("_EVAL_UARE", "Examen");define("NOTA10", "10");// Nume invaliddefine("2PAC", "Cantaret");// Asa arata constantele PHP,// e bine sa nu avem si noi la feldefine("__NOTA__", "10");( )

?>Programare Web– Curs 3 49

Page 50: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ConstanteConstanteConstanteConstante• Spre deosebire de variabile:

– Constantele nu au un nume care începe cu $

– Constantele pot fi definite doar cu define() nu prin– Constantele pot fi definite doar cu define() nu prin atribuire

Constantele nu au domeniu de valabilitate ca– Constantele nu au domeniu de valabilitate ca variabilele (se pot folosi și în funcții de exemplu).

Nu pot să și schimbe valoarea și nu pot fi dealocate– Nu pot să-și schimbe valoarea și nu pot fi dealocate (unset)

Constantele pot conține doar valori scalare (boolean– Constantele pot conține doar valori scalare (boolean, intreg, real sau șir)

Programare Web– Curs 3 50

Page 51: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ConstanteConstante predefinitepredefiniteConstanteConstante predefinitepredefinite• PHP pune la dispoziție și o serie de constante

predefinite.• Acestea au forma NumeAcestea au forma __Nume__• Printre ele sunt:

– __LINE__ numărul liniei curente în sursa PHP

– __FILE__ calea și numele complet al fișierului sursă PHP

– __DIR__ directorul acelui fișier

– __FUNCTION__ numele funcției curente (doar cu litere mici în PHP4)PHP4)

– __CLASS__ numele clasei (doar cu litere mici în PHP4)

– __METHOD__ numele metodei din clasă (doar PHP5)

Programare Web– Curs 3 51

Page 52: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExpresiiExpresiiExpresiiExpresii• Expresiile în PHP sunt similare celor din limbajul C• Se pot folosi construcții de tipurile:

$a++ ++$a– $a++, ++$a– $a--, --$a– $a += 3; (echivalentă cu $a = $a + 3;), în loc de +

putând fi orice operator valid pentru operația respectivă

– Atribuiri multiple, ca de exemplu:

$a = $b = ++$c; sau$a $b $c; sau

$a = $b += 10;

Programare Web– Curs 3 52

Page 53: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AtribuirileAtribuirile îîntorcntorc oo valoarevaloareAtribuirileAtribuirile îîntorcntorc o o valoarevaloare• Ca și în limbajul C atribuirile întorc o ș j

valoare:if ($ l t( )) if ($con = mysql_connect(…)) …

• Ca și în limbajul C o expresie logică eCa și în limbajul C o expresie logică e evaluată doar până în momentul în care valoarea sa este certă:valoarea sa este certă:mysql_connect(…) or die('Conexiune y q _ ( ) (esuata');

Programare Web– Curs 3 53

Page 54: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

OperatoriOperatoriOperatoriOperatori• Aritmetici: +, -, *, /, % (modul), , , , ( )• Logici: ==, ===, !=, !==, <, >, <=, >=• Conectori logici: and, &&, or, ||, ! (negare),

xor (sau exclusiv)xor (sau exclusiv)• Operatori pe șiruri: . (concatenare)• Operatori pe biți: &, |, ~ (inversare biți)

Programare Web– Curs 3 54

Page 55: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

StructuriStructuri de controlde controlStructuriStructuri de controlde control• Există o serie de structuri de control care

sunt similare celor din limbajul C.V i l d i ii i l i• Vom avea ca și acolo decizii, cicluri, alegere

• Se pot defini ca și în C funcții (nu există decât funcții nu și proceduri ca în Pascal)decât funcții, nu și proceduri ca în Pascal).

Programare Web– Curs 3 55

Page 56: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DeciziaDeciziaDeciziaDecizia• În PHP aceste instrucțiuni sunt asemănătoare ca sintaxa

l i il di li b j l Ccu cele similare din limbajul C.

• Sintaxa:

if (conditie_1){ instructiuni 1 }{ instructiuni_1 }

elseif (conditie_2){ i i i 2 }{ instructiuni_2 }

. . . . . . . . . .else { instructiuni_N }

• elseif și else sunt opționale (similar cu limbajul C)elseif și else sunt opționale (similar cu limbajul C).

Programare Web– Curs 3 56

Page 57: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DeciziaDeciziaDeciziaDecizia• Exemplu:p

if ($a > $b){ print "a este mai mare ca b";}

elseif ($a == $b)elseif ($a $b){ print "a este egal cu b";}

else{ print "a este mai mic decat b";}{ print a este mai mic decat b ;}

Programare Web– Curs 3 57

Page 58: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CiclulCiclul WHILEWHILECiclulCiclul WHILEWHILE• Sintaxa:

while ( conditie ){ i t ti i }{ instructiuni }

• Exemplu:p$i = 10;

hil ($i 0)while ($i >= 0){ print $i--; }{ print $i ; }

Programare Web– Curs 3 58

Page 59: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CiclulCiclul DODOCiclulCiclul DODO• Sintaxa:

do{ i t ti i }{ instructiuni }while ( conditie );( );

• Exemplu:$i 10$i = 10;dodo{ print $i--;}

$while ($i>0);Programare Web– Curs 3 59

Page 60: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CiclulCiclul FORFORCiclulCiclul FORFOR• Sintaxa:

FOR (expr1; expr2; expr3)instrucţiune

• Execuția unui astfel de ciclu se face astfel:– Se evaluează expresia expr1p

– Cât timp expresia expr2 are valoarea adevărat se repetă operațiile:• Se executa instrucțiunea (instrucţiune)

• Se evaluează expresia expr3

• Exemplu:for ($i = 1; $i <=10; $i++){ print $i;}

• Efectul va fi afișarea valorilor de la 1 la 10.Programare Web– Curs 3 60

Page 61: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FOREACHFOREACHFOREACHFOREACH• Sintaxa (2 variante):( )

foreach (expr_array as $valoare)statement

foreach (expr array as $cheie => $valoare)foreach (expr_array as $cheie $valoare)statement

• Se folosește pentru parcurgerea unui tablou (ciclu după elementele unui tablou)tablou (ciclu după elementele unui tablou)

Programare Web– Curs 3 61

Page 62: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ExempluExempluExempluExemplu<?php// tiparirea unui tablou$arr = array("one" "two" "three");$arr = array( one , two , three );foreach ($arr as $val) {

h "V l $ l b / \ "echo "Value: $val<br />\n";}foreach ($arr as $k => $val) {

echo "Cheie: $k; Val: $val<br />\n";echo Cheie: $k; Val: $val<br />\n ;}??>

Programare Web– Curs 3 62

Page 63: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

BreakBreak șșii ContinueContinueBreak Break șșii ContinueContinue• Aceste instrucțiuni se folosesc pentru a ieși dintr-un ciclu,

ti t t diți t l lrespectiv pentru a se trece necondiționat la un nou pas al ciclului chiar dacă pasul curent nu s-a terminat.

• Exemplu:

Tipărirea numerelor impare dintre 1 și 10

for ($i = 1;;$i++) { if ($i > 10) { break; }if ($i > 10) { break; }if ($i % 2) { continue; }

$print $i;}

Programare Web– Curs 3 63

Page 64: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlegereaAlegerea (Switch)(Switch)AlegereaAlegerea (Switch)(Switch)• Sintaxa:

switch (expr){case val1:

instructiunicase val2:

instructiuni. . . . . . . .default:

instructiuni}

Programare Web– Curs 3 64

Page 65: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlegereaAlegerea (Switch)(Switch)AlegereaAlegerea (Switch)(Switch)• Efectul este următorul:

– Se evaluează expresia exprl1 l– Se parcurg etichetele case (val1, val2, …) una

după alta. În cazul în care se găsește o egalitate, se executa instrucțiunile de la acea eticheta până la prima instrucțiune break sau

hpână se sfârșește întregul switch.

– Daca nu exista nici o egalitate se execută Daca nu exista nici o egalitate se execută instrucțiunile de la default.

Programare Web– Curs 3 65

Page 66: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlegereaAlegerea (Switch)(Switch)AlegereaAlegerea (Switch)(Switch)• Exemplu:

switch ($i)switch ($i){case 0:

print "i egal cu 0";print i egal cu 0 ;break;

case 1:p int "i l 1";print "i egal cu 1";break;

case 2:i t "i l 2"print "i egal cu 2";

break;default:

i "i l 0 1 2"print "i nu este egal cu 0, 1 sau 2";}

• De remarcat că dacă instrucțiunile break ar lipsi, în cazul în care $i este egal cu 0 se tipăresc toate cele patru mesaje iar în cazul în care este egal cu 1 doar ultimele trei.

Programare Web– Curs 3 66

Page 67: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• Programele PHP pot conține funcții definite de utilizator,

inclusiv functii recursiveinclusiv functii recursive.

• Sintaxa definiției unei funcții este următoarea:

f ffunction nume_functie(lista_parametri){instructiuniinstructiuni}

• Dacă se dorește ca funcția să întoarcă o valoare, se folosește instrucțiunea:

return expresie;Programare Web– Curs 3 67

Page 68: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• Exemplu:p

function la_patrat ($numar) {return $numar * $numar;

}}echo la patrat(10);echo la_patrat(10);

Programare Web– Curs 3 68

Page 69: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• Folosirea unei funcții se poate face doar după definiția

acesteiaacesteia.

• Parametri sunt transmiși prin valoare.

• Dacă se dorește transmiterea prin referință a unui argument, se poate folosi construcția &variabila:

function la_patrat (&$numar) {$numar = $numar * $numar;$ m $ m $ m ;

}$ 10;$a = 10;la_patrat($a);echo $a; // tipareste 100

Programare Web– Curs 3 69

Page 70: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• Se poate transmite prin valoare adresa sa:

function la_patrat ($numar) {$numar = $numar * $numar;$numar = $numar $numar;

}$ 10$a = 10;la_patrat($a);echo $a; // tipareste 10la patrat(&$a);la_patrat(&$a);echo $a; // tipareste 100

Programare Web– Curs 3 70

Page 71: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• La definirea unei funcții se pot asigna și valori

implicite pentru argumente.• În cazul în care acestea lipsesc la apel sunt luateÎn cazul în care acestea lipsesc la apel sunt luate

implicit valorile din definiție:f ti l t t ($ 4) {function la_patrat ($numar = 4) {

return $numar * $numar;$ $}

h l (10) // i 100echo la_patrat(10); // tipareste 100echo la patrat(); // tipareste 16_p (); // p

Programare Web– Curs 3 71

Page 72: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțțiiiiFuncFuncțțiiii• Astfel de argumente trebuie să fie ultimele din

listă.• De exemplu secvența:De exemplu secvența:

function inmultire ($numar1 = 4, $numar2) {return $numar1 * $numar2;

}}echo inmultire(10);

va semnala o eroare deoarece automat valoarea 10 va fi asignată primului argument.g p g

Programare Web– Curs 3 72

Page 73: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții PHPii PHPFuncFuncțții PHPii PHP• PHP pune la dispoziție un număr foarte p p ț

mare de funcții, atât de uz general cât și funcții specifice accesului la diversefuncții specifice accesului la diverse sisteme de gestiune a bazelor de date.Ε În continuare sunt prezentate o parte dintre acestea…

Programare Web– Curs 3 73

Page 74: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAYarray array(lista valori);

• Creează un array conținând valorile din listă.Pentru un array bidimensional se poate folosiPentru un array bidimensional se poate folosi operatorul => pentru asocierea celor doi indici.

• Exemplu:• Exemplu:$note = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);$calificative = array("S"=>"Satisfacator",

"B"=>"Bine","F"=>"Foarte bine");• În primul caz s-a definit un array cu o singură

dimensiune iar în cel de-al doilea unul cu două dimensiuni.

Programare Web– Curs 3 74

Page 75: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAYvoid list(lista de valori);

• Asignează o lista de variabile ca și când ar fi un arrayarray.

• Exemplu:$rezultat = mysql_query("select nume_s,

grupa from studenti");g p )while (list($n, $g) =

mysql fetch row($rezultat))mysql_fetch_row($rezultat)){ print( "Nume: $n<br>Grupa: $g<br>\n"); }

Programare Web– Curs 3 75

Page 76: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAYint count(variabila);

• Întoarce numărul de elemente din variabilă.D ă t t ă t fi i• Dacă este un array acest număr poate fi mai mare ca 1. Dacă variabila nu este setată întoarce 0.

array each(array array);• Întoarce următoarea pereche (index valoare) dintr-• Întoarce următoarea pereche (index, valoare) dintr-

un array sub forma unui tablou având indicii 0 si 1 sau key și valuesau key și value.

Programare Web– Curs 3 76

Page 77: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAY• De notat că fiecare variabilă de tip array are

asociat un pointer intern care arată către unul dintre elementele sale iar funcția each() se poate folosi pentru parcurgerea sa.

• Exemplu:p$calificative = array ("S"=>"Satisfacator",

"B"=>"Bine" "F"=>"Foarte bine");B > Bine , F > Foarte bine );list($c, $d) = each($calificative);

At i• Atunci:– $c are valoarea "S"– $d are valoarea "Satisfacator"

Programare Web– Curs 3 77

Page 78: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAYmixed next(array tablou);( y )

• Întoarce următorul element al unui array sau false dacă nu mai sunt elementesau false dacă nu mai sunt elemente, avansând deci pointerul intern asociat t bl l itabloului.

• De notat că dacă un tablou are elementeDe notat că dacă un tablou are elemente nule și pentru acestea valoarea întoarsă va fi false De aceea pentru parcurgerea unuifi false. De aceea, pentru parcurgerea unui tablou se recomandă folosirea lui each().

Programare Web– Curs 3 78

Page 79: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții ARRAYii ARRAYFuncFuncțții ARRAYii ARRAYmixed prev(array tablou);

• Întoarce precedentul element al unui array sau false dacă nu mai sunt elemente, decrementând pointerul intern asociat tabloului.

• Aceeași observație ca la next (folosire each)mixed reset(array tablou);

• Setează pointerul intern asociat tabloului la primul element al acestuia.

• Întoarce valoarea acestui element.int sizeof(array tablou);

• Întoarce numărul de elemente ale unui tablou. Este analog cu count().

Programare Web– Curs 3 79

Page 80: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții deii de informareinformare//setaresetareFuncFuncțții de ii de informareinformare//setaresetareint error_reporting(int [level]);

• Setează nivelul de erori care sunt raportate de PHP Valorile respective pot fi cumulate prinPHP. Valorile respective pot fi cumulate prin adunare în cazul în care se doresc setate simultan mai multe tipuri de raportărisimultan mai multe tipuri de raportări.

string getenv(string variabila);• Întoarce valoarea unei variabile de mediu sau

false în caz de eroare.$ip = getenv("REMOTE_ADDR"); // prelevare

adresa IP a clientuluiadresa IP a clientului

Programare Web– Curs 3 80

Page 81: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

FuncFuncțții deii de informareinformare//setaresetareFuncFuncțții de ii de informareinformare//setaresetarevoid putenv(string setare);

• Creează o nouă variabilă de mediu. Exemplu:

putenv("USER = $user");putenv( USER $user );int phpinfo(void);

Î t ită d i f ții i i d PHP ți i d• Întoarce o suită de informații privind PHP: opțiuni de compilare, versiune, informații despre serverul de web, variabile de mediu versiunea sistemului de operare etcvariabile de mediu, versiunea sistemului de operare, etc.

string phpversion(void);Ε Întoarce sub forma unui sir numărul versiunii PHP folosite.

Programare Web– Curs 3 81

Page 82: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiivoid eval(string sir);

• Șirul de caractere (care trebuie sa conțină expresii valide PHP) este evaluat.

• Exemplu:$nume = 'Ion';$ ' $ '$str = 'Ma numesc $nume<br>';echo $str;eval( "\$str = \"$str\";" );echo $str;

• Va avea ca efect tipărirea mesajelor:Ma numesc $numeMa numesc Ion

Programare Web– Curs 3 82

Page 83: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiivoid die(string mesaj);

• Afișează un mesaj și termină execuția scriptului.E l• Exemplu:$nume_fisier = '/usr/local/date.txt';$f = fopen($nume_fisier, 'r') or die "Nu se poate

deschide fisierul $filename";

void exit(void);T i ă i di t ți i t l i• Termină imediat execuția scriptului.

Programare Web– Curs 3 83

Page 84: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiivoid sleep(int secunde);p( )

• Întârzie execuția un număr de secunde.echo(string arg1, string [argn]...);

sauecho string arg1, string [argn]...;echo string arg1, string [argn]...;

• Evaluează și afișează parametrii primiți ca argument.

Programare Web– Curs 3 84

Page 85: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiiprint(string arg);

• Afișează argumentul.

int printf(string format, mixed [argumente]...);int printf(string format, mixed [argumente]...);• Afișează argumentele formatate conform șirului format

(asemănător cu limbajul C)(asemănător cu limbajul C).

int strcmp(string str1, string str2);C d i i Î l 0 lă 0• Compara doua șiruri. Întoarce o valoare < 0, egală cu 0 sau >0 după cum str1 este mai mic, egal sau mai mare decât str2 Literele mari și mici sunt considerate diferitedecât str2. Literele mari și mici sunt considerate diferite.

int strlen(string sir);Ε Întoarce lungimea unui șir de caractere.

Programare Web– Curs 3 85

Page 86: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiistring substr(string sir, int start, int [lung]);

• Întoarce un subșir conținând caracterele începând cu cel dat de start• Întoarce un subșir conținând caracterele începând cu cel dat de startsi având lungimea lung. Dacă start este negativ, numărătoarea pentru stabilirea caracterului inițial este făcută de la sfârșitul șirului. D ă l t ti lti l t l b i l i t l fl t lDacă lung este negativ ultimul caracter al subșirului este cel aflat la distanța lung de sfârșitul șirului. Întoarce întotdeauna cel puțin un

• caracter cel dat de startcaracter, cel dat de start.

• Exemple:

$rest = substr("abcdef" 1); // întoarce "bcdef"$rest = substr( abcdef , 1); // întoarce bcdef$rest = substr("abcdef", 1, 3); // întoarce "bcd"$rest = substr("abcdef" 1); // întoarce "f"$rest = substr( abcdef , -1); // întoarce f$rest = substr("abcdef", -2); // întoarce "ef"$rest = substr("abcdef" 3 1); // întoarce "d"$rest = substr( abcdef , -3, 1); // întoarce d$rest = substr("abcdef", 1, -1); // întoarce "bcde"

Programare Web– Curs 3 86

Page 87: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiiint is_array(mixed var);

Î t t d ă i bil t i f l ltf l• Întoarce true dacă variabila este un array si false altfel.

int is_double(mixed var);int is_float(mixed var);int is real(mixed var);int is_real(mixed var);

• Întorc true dacă variabila este un număr real și false altfel.

i t i i t( i d )int is_int(mixed var);int is_integer(mixed var);int is_long(mixed var);

• Întorc true dacă variabila este un număr întreg și falseÎntorc true dacă variabila este un număr întreg și falsealtfel.

Programare Web– Curs 3 87

Page 88: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

AlteAlte funcfuncțțiiiiAlteAlte funcfuncțțiiiiint is_object(mixed var);

Î t t d ă i bil t bi t i f l ltf l• Întoarce true dacă variabila este un obiect și false altfel.

int is_string(mixed var);• Întoarce true dacă variabila este un șir de caractere și

false altfel.

int isset(mixed var);• Întoarce true dacă variabila există și false altfelÎntoarce true dacă variabila există și false altfel.

int unset(mixed var);• Elimină o variabilă.

string strval(mixed var);• Convertește la șir de caractere o variabilă scalară.

Programare Web– Curs 3 88

Page 89: Limbajul PHP - Cursuri Automatica si Calculatoareandrei.clubcisco.ro/cursuri/f/f-sym/4pw/2012/PW4_1-PHP.pdfonline din care se pot aprofunda diversele aspecte ale limbajului și folosirii

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

BibliografieBibliografieBibliografieBibliografie• Documentația PHP: http://www.php.net/docs.php• Câteva cărți disponibile online:

Sams Teach Yourself PHP in 10 Minutes(2005)– Sams - Teach Yourself PHP in 10 Minutes(2005) http://www.net130.com/CMS/Pub/book/book_web/bookweb php/2005 10 19 70383.htm_web_php/2005_10_19_70383.htm

– Object Oriented PHP Concepts Techniques and Code (și altele) la adresa: http://cid-(și altele), la adresa: http://cid846ffdcf0d3320d8.skydrive.live.com/browse.aspx/eBook

Programare Web– Curs 3 89