Lectia 2 : date



Yüklə 138,32 Kb.
tarix30.07.2018
ölçüsü138,32 Kb.
#63030

Lectia 2 : DATE
Tipuri de date, Variabile, Constante, Operatori, Definire functii

In PHP lucrul cu variabile este extrem de simplu. PHP recunoaste usor tipurile variabilelor, iar sintaxa de definire a acestora are structura cea mai simpla posibila. Aceia care au mai lucrat cu C, Java sau Perl, vor gasi lucrul cu PHP foarte usor.


Toate variabilele, in PHP incep su semnul dolar ($). Nu conteaza ce tip de variabila folositi. In codul programului toate arata la fel. PHP retine tipul informatiei stocate in variabila.
Nu este necesara o declarare a variabilelor la inceputul programului. Tot ce trebuie sa faceti este doar sa le folositi si ele exista. Cum am spus, toate tipurile de variabile arata la fel. Urmatorul exemplu arata cum se declara o variabila de tipul string, integer, si floating-point (tipurile de date vor fi discutate si explicate imediat):
$a = “Acesta este un string”; //Acesta este un string

$b = 4; //Acesta este un integer

$c = 4.837 //Acesta este un numar in virgula flotanta (floating-point)

$d = “2”; //Acesta este tot un string



1.       TIPURI DE DATE




Tipurile de date cele mai folosite in PHP sunt urmatoarele:

-          boolean

-          integer

-          floating-points

-          string

-          array

-          null.


In continuare le vom discuta pe fiecare pe scurt.
Boolean

Este cel mai simplu tip de date. O variabila de tipul boolean poate avea doar doua valori: TRUE sau FALSE (ADEVARAT sau FALS). De asemenea poate lua valori intregi care sa le repreainte pe cele de mai sus. Astfel, valoarea 0 inseamna FALSE, iar orice alta valoare intreaga diferita de 0 inseamna TRUE.


In urmatoarele exemple variabila a primeste valoarea TRUE (adevarat):

$a = TRUE;

$a = 1;

$a = -1;
sau valoarea FALSE (fals):



$a = FALSE;

$a = 0;


$a = “”; //sirul vid
Integer

Reprezinta multimea numerelor intregi Z = {…, -2, -1, 0, 1, 2, …}

Variabilele de acest tip pot fi initializate cu numere intregi specificate in format zecimal (in baza 10), hexazecimal (in baza 16) sau octal (in baza 8).

Exemplu:
$a = 1234; //numar intreg zecimal

$a = -123; //numar intreg negativ

$a = 0123; //numar intreg in format octal – numarul trebuie precedat de un 0

$a = 0x1AB; //numar intreg in format hexazecimal – numarul e precedat de 0x
Dimensiunea unui numar de tip Integer este dependenta de platforma, dar valoarea maxima este de aproximativ 2.000.000.000 cu semn (-2.000.000.000 … 0 … +2.000.000.000)
Floating-points

Reprezinta numerele cu virgula mobila, care pot fi specificate folosind oricare din sintaxele urmatoare:


$a = 1.23;

$a = 1.2e3;

$a = 7E-10;
Dimensiunea acestui tip de date este foarte mare, si este data de numere ce pot fi scrise pe 64 de biti (numarul maxim este in jurul valorii de 10^20 = 10 la puterea 20). Dezavantajul este ca are o precizie scazuta la ultimele cifre.
String

String reprezinta un sir de caractere.

Exista 3 moduri de definire a variabilelor de tip String, dar numai 2 sunt folosite in mod uzual.

- definirea cu ghilimele simple:

$a = ‘Acesta este un string’;

- definirea cu ghilimele duble:

$a = “Acesta este un string”;
Pentru afisarea caracterului apostrof ( ‘ ) in cadrul textului, acesta trebuie precedat de caracterul backslash ( \ ). La fel se procedeaza pentru afisarea caracterului backslash ( \ ).
Exemplu:

$a = 'Arnold once said: "I\'ll be back"';

//Va afisa: Arnold once said: “I’ll be back”
Diferenta dintre cele doua modalitati este ca in cazul al doilea pot fi inserate anumite caractere speciale, iar daca in cadrul textului apare o variabila, aceasta va fi inlocuita cu valoarea continuta in ea.
Exemplu:

$x = 40;


$a = “S-au inscris $x participanti la cursul de PHP.”;

//Va afisa: S-au inscris 40 participanti la cursul de PHP.


Caracterele speciale care pot fi folosite sunt urmatoarele:

\n linie noua (line feed)

\r intoarcere la inceputul liniei (carriage return)

\t tab


\\ backslash

\$ semnul dolar

\” ghilimele

Array

In limba romana acest tip de date se numeste tipul Tablou si reprezinta o structura ordonata pe mai multe dimensiuni. Datele continute intr-un Array pot fi de tipuri diferite.


Sintaxa pentru definire este urmatoarea:

$nume_array[cheie] = valoare;


cheie – poate fi de tipul String sau Integer nenegativ

valoare – poate fi orice
Definirea se poate face in mai multe moduri, ilustrate in exemplul urmator:
// Acesta

$a = array( 'culoare' => 'rosu'

, 'gust' => 'dulce'

, 'forma' => 'rotund'

, 'nume' => 'mar'

, 4 // cheia este 0

);
// este absolut echivalent cu

$a['culoare'] = 'rosu';

$a['gust'] = 'dulce';

$a['forma'] = 'rotund';

$a['nume'] = 'mar';

$a[] = 4; // cheia este 0


//sau

$b[] = 'a';

$b[] = 'b';

$b[] = 'c';

// Va rezulta sirul array( 0 => 'a' , 1 => 'b' , 2 => 'c' ),

// sau mai simplu, sirul array('a', 'b', 'c')


Referirea la o variabila de tip tablou se face cu numele tabloului si cheie:

echo “Fructul $a[‘nume’] are gust $a[‘gust’].”;

//Va afisa: Fructul mar are gust dulce.

Null

Valoarea speciala NULL reprezinta o variabila care nu are nici o valoare.

Sintaxa de atribuire a acestei valori unei variabile este urmatoarea:

$a = Null;


Atentie! Valoare null trebuie scrisa in forma aceasta Null, cu N mare.

2.       VARIABILE

Cum am spus si la inceput, toate variabilele sunt precedate de semnul dolar ( $ ). Numele variabilelor este case-sensitive, adica tine cont de litere mari sau mici ($var este o variabila diferita de $Var). Numele unei variabile trebuie sa inceapa cu o litera sau liniuta de subliniere ( _ ) urmata de oricate litere, cifre sau liniute de subliniere. ( se recomanda a se evita utilizarea _ pentru a nu se confunda cu variabilele sistem)


Exemplu:
$var = “Bob”;

$Var = “John”;

echo “$var, $Var”; //Va afisa: “Bob, John”
$4me = “variabila”; //incorect – numele incepe cu o cifra

$_4me = “variabila”; //corect – numele incepe cu liniuta de subliniere


In PHP este permisa atribuirea unei valori prin referinta. Aceasta inseamna ca noua variabila va fi o referinta spre variabila originala. Modificarea variabilei noi va duce la modificarea celei originale, si invers. Aceasta atribuire are loc mult mai rapid, iar efectul se observa mai ales in structuri care se repeta. Pentru o astfel de atribuire se foloseste semnul ( & ) in fata valorii atribuite.
Exemplu:
$a = ‘banana’;

$b = &$a; //variabila $b va contine stringul ‘banana’

$b = ‘portocala’; //modificand variabila $b se va modifica si $a
Variabilele declarate in cadrul unui program nu sunt valabile si in interiorul functiilor definite de utilizator. Variabilele globale sunt valabila in tot programul, iar variabilele locale sunt valabile doar in cadrul structurii definite de utilizator.
Exemplu:
$a = 1; /* variabila globala */

Function Test () {

echo $a; /* referinta spre o variabila locala */

}


Test ();
Aceasta functie nu va afisa nimic, pentru ca variabila locala $a nu are atribuita nici o valoare. Pentru a folosi o variabila globala in interiorul functiei definite de utilizator, ea trebuie declarata in cadrul functiei cu clauza global.
$a = 1; /* variabila globala */

Function Test () {



global $a;

echo $a; /* referinta spre o variabila locala */

}

Test ();
Aceasta functie va afisa valoarea 1, pentru ca foloseste variabila $a declarata global.


Variabilele pot fi luate si dintr-un formular HTML sau prin specificarea lor la apelarea paginii web, insa acestea vor fi tratate in alta lectie.

3.       CONSTANTE
Constanta este un identificator pentru o valoare simpla. Cum spune si numele, valoarea acesteia nu se modifica pe durata executiei scriptului. Numele constantei este case-sensitive, ca si in cazul variabilelor. Prin conventie, constantele se scriu intotdeauna cu litere mari.
Exemplu:
define("CONSTANT", "Hello world.");

echo CONSTANT; // Afiseaza: "Hello world."


Constantele pot contine numai date de tipul: boolean, integer, floating-point si string.

Exista cateva diferente intre constante si variabile:

- constantele nu au semnul dolar ( $ ) in fata

- constantele pot fi definite si accesate oriunde, fara a tine cont de regulile de la variabile

- constantele nu pot fi redefinite.


4.       OPERATORI
Operatori aritmetici

$a + $b adunare

$a - $b scadere

$a * $b inmultire

$a / $b impartire

$a % $b modulo


Operatori de atribuire

$a = 3; //$a primeste valoarea 3

$a += 5; //$a ia valoarea 8, adica 3 + 5.

$c = ($b = 4) + 5; //$b primeste valoarea 4, iar $c valoarea 9

$b = "Hello ";

$b .= "There!"; //atribuie lui $b valoarea "Hello There!", este echivalent cu $b = $b . "There!";


Operatori la nivel de bit

$a & $b Si

$a | $b Sau

$a ^ $b Sau-Exclusiv

~ $a Not (Negare)

$a << $b Rotire la stanga (muta bitii lui $a cu $b pozitii spre stanga)

$a >> $b Rotire la dreapta (muta bitii lui $a cu $b pozitii spre dreapta)
Operatori de comparare

$a == $b egal cu

$a === $b identic cu

$a != $b deferit

$a <> $b diferit

$a !== $b neidentic

$a < $b mai mic

$a > $b mai mare

$a <= $b mai mic sau egal

$a >= $b mai mare sau egal


Operatori de incrementare/decrementare

++$a Pre-incrementare (aduna 1 la $a, apoi returneaza $a)

$a++ Post-incrementare (returneaza $a, apoi aduna 1 la $a)

--$a Pre-decrementare (scade 1 din $a, apoi returneaza $a)

$a-- Post-decrementare (returneaza $a, apoi scade 1 din $a)
Operatori logici

$a and $b Si

$a or $b Sau

$a xor $b Sau-Exclusiv

! $a Not (Negare)

$a && $b Si

$a || $b Sau
Stim deja ca oricarei variabile i se poate atribui o valoare, de forma:

$variabila = 3;

sau

$variabila2 = "Hello world!";



Ei bine, cand dorim ca 'numele' variabilei sa fie in functie de o variabila? (de exemplu transmisa de utilizator printr-un formular - desi dau acest exemplu doar ca sa se inteleaga, nu e bine in general sa ne incredem in ceea ce ne poate transmite utilizatorul, ci trebuie sa verificam aceasta foarte bine, din motive de siguranta)

De exemplu, variabila $myvar = 'alta';Bun, pana aici stim ce se intampla, nu?

Daca scriem in programul nostru:
echo $myvar;

va aparea: alta

daca insa facem asa:

$alta = 'Hello world!';


$myvar = 'alta';
echo $$myvar;

Ce credeti ca se intampla? Ati ghicit nu-i asa?


Se va afisa: Hello world!

Pe scurt, dar cam complicat, simpla si dubla indirectare se poate rezuma asa:


-simlpa indirectare: foloseste valoarea variabilei curente
-dubla indirectare: foloseste valoarea variabilei cu numele continut in variabila curenta

PS. am gasit acest lucru foarte util cand am avut nevoie de a genera vreo 200 de nume de variabile pentru javascript, intr-un formular cu multe date de luat, de forma:


document.myform.camp001.value = ..
document.myform.camp002.value = ..

$a = 3;
$b = 5;



//Exemplu de lucru cu tipul Integer
echo "a = $a";
echo "
";
echo "b = $b";
echo "
";

$c = $a + $b;


echo "a + b = $c";
echo "

";

//Exemplu de lucru cu string-uri


$text = "Urmeaza lectia";
$text1 = $text . " " . $a . ".";
echo $text1;
echo "
";

$text = "Numele meu este ";


$name = "Lorand";
$text .= $name;
echo $text;
echo "

";

//Exemplu de lucru cu tablouri



$a = array ('Duminica','Luni','Marti','Miercuri','Joi','Vineri','Sambata');
echo "Zilele saptamanii sunt:
";
for($i=0;$i<=7;$i++)
{
echo "$a[$i]
";
}

?>

Structuri de control. Definire Clase



Structurile de control sunt scheletul ( inima) limbajelor de programare . PHP are incluse structurile de control necesare functionarii unui limbaj.

Daca aveti ceva cunostinte de Cobol, Pascal, C nu o sa fiti deloc surprinsi de ceea ce urmeaza.

Programele PHP iau decizii prin evaluare unor expresii conditionale si executa instructiuni bazate pe rezultatele acestor evaluarii.

Expr. Conditionale se mai numesc si expresii booleene , uneori , si au valorile asociate : true (1) – adevarat false (0)- fals

O modalitate mai utila de a forma o expresie conditionala consta in utilizarea unui operator relational pentru compararea a doua valori numerice.

Exemplu : $a < 1 ( operatorul < are aceeasi semnificatie ca si in algebra )

Expresia conditionala de mai sus are valoarea true daca si numai daca valoarea variabilei $a are valoarea mai mica decat unitatea ; in toate celelalte cazuri are valoarea false.
Puteti folosi operatori relationali si pentru compararea sirurilor, numai ca aceste siruri vor fi convertite la o valoare numerica inainte de evaluarea expresiei. Vom vedea mai tarziu totusi ca exista si functii de comparare a sirurilor.


Operatori relaţionali ai limbajului PHP
Operator Descriere
1. a2. a>b Adevărat dacă valoarea lui a este mai mare decât valoarea lui b.
3. a<=b Adevărat dacă valoarea lui a este mai mică sau egală cu valoarea lui b.
4. a>=b Adevărat dacă valoarea lui a este mai mare sau egală cu valoarea lui b.
5. a==b Adevărat dacă valoarea lui a este egală cu valoarea lui b.
6. a!=b Adevărat dacă valoarea lui a este diferită de valoarea lui b.
7. a= =b Adevărat dacă a şi b sunt identice; cu alte cuvinte, dacă a şi b au acelaşi tip şi dacă valoarea lui a este egală cu valoarea lui b.
8. a!= =b Adevărat dacă a şi b nu sunt identice; cu alte cuvinte, dacă a şi b nu sunt de acelaşi tip sau dacă valoarea lui a este diferită de valoarea lui b.
Pentru a sintetiza, iată regulile care definesc rezultatul unei expresii condiţionale:
• Constantele true şi false îşi iau respectiv valorile lor booleene corespunzătoare.

• O expresie condiţională care constă dintr-o valoare nedefinită are valoarea false; în caz contrar, rezultatul depinde de tipul valorii, în speţă numeric, şir, tablou sau obiect.

• O expresie condiţională care constă dintr-o valoare numerică are valoarea false dacă valoarea este zero; în caz contrar, are valoarea true.

• O expresie condiţională care constă dintr-o valoare de tip şir are valoarea false dacă şirul este vid; în caz contrar, are valoarea true.

• O expresie condiţională care constă dintr-o valoare de tip tablou sau obiect are valoarea false dacă tabloul sau obiectul sunt vide; în caz contrar, are valoarea true.

• O expresie condiţională alcătuită dintr-un operator relaţional şi din operanzii săi ia valori în conformitate cu rezultatul comparaţiei (numerice sau nu).


Puteţi forma expresii condiţionale complexe prin unirea a două expresii condiţionale cu ajutorul unui operator logic.
De exemplu, expresia următoare este adevărată dacă ambele expresii condiţionale care o compun sunt adevărate:

$a < 1 AND $b < 1

Cu alte cuvinte, expresia este adevărată dacă atât variabila $a, cât şi variabila $b au valori mai mici decât 1.

In general, expresiile sunt evaluate de la stânga la dreapta. Ca si in alte limbaje de programare totuşi, operatorii care apar în partea superioară a tabelului dispun de o precedenţă mai ridicată şi sunt efectuaţi anterior operatorilor cu o precedentă mai redusă, dacă nu sunt folosite paranteze pentru a specifica o altă ordine a operaţiilor.

Operatori logici ai limbajului PHP
Operator Descriere
x AND y Adevărat dacă atât x, cât şi y sunt adevărate.
x && y Adevărat dacă atât x, cât şi y sunt adevărate.
x OR y Adevărat dacă minimum una din expresiile x şi y este adevărată.
x || y Adevărat dacă minimum una din expresiile x şi y este adevărată.
x XOR y Adevărat dacă numai una din expresiile x şi y este adevărată.
!x Adevărat dacă x este falsă.

Precedenţa operatorilor PHP
Operator
! ~ ++ — (int) (double) (string) (array) (object)
/ %
+ - .
< <= > >=
= = != = = = ! = =
&
Ù
ç
&&
çç
?:
= += -= = /= .= %= &= ç= Ù= ~= <<= >>=
And
Xor

Or
,

Exemplu :
Consideram expresia $a + $b * $c
Precedenţa operatorului de multiplicare * este mai ridicată decât aceea a operatorului de adunare +, deci înmulţirea este efectuată prima, chiar dacă adunarea apare la stânga înmulţirii. Cu alte cuvinte, expresia este evaluată ca şi cum ar fi fost scrisă astfel:
$a + ( $b * $c )
Dacă doriţi ca adunarea să fie efectuată prima, puteţi folosi paranteze în cadrul expresiei, astfel:

( $a + $b ) * $c




INSTRUCTIUNEA IF

SIMPLA

$a= 15 ” ;

If ($a > 10)

Echo "Acesta este un număr mare " ;

Asta se traduce cam asa :

- daca conditia este adevarata executa echo sau orice alta instructiune care ar putea fi ;

1. Plasaţi următorul script PHP într-un fişier denumit lectia3-1.php şi încărcaţi acest fişier în serverul dumneavoastră PHP:






Lectia3-1





echo „ Numărul introdus a fost : $număr.”;

if ($număr > 10)

echo „
Acesta este număr mare.”;

?>

Introduceţi o valoare numerică:







Yüklə 138,32 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin