Referat, comentariu, eseu, proiect, lucrare bacalaureat, liceu si facultate
Top referateAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Tipuri de date php
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Numere intregi x2r5ru
Numerele intregi se pot specifica in modul urmator (exemplul 2.2.1):

$a = 1234; # Numar intreg in baza 10
$a = -123; # Numar intreg negativ
$a = 0123; # Numar intreg in baza 8, octal (echivalent cu 83 in baza 10)
$a = 0x12; # Numar intreg in baza 16, hexazecimal (echivalent cu 18 in baza 10)
Numere reprezentate in virgula mobila
Numerele reprezentate in virgula mobila (double) pot fi utilizate in oricare din sintaxele urmatoare (exemplul 2.2.2):

$a = 1.234;
$a = 1.2e3;
Dimensiunea numerelor in virgula mobila este independenta de platforma. Precizia uzuala este de 14 cifre.

Observatii:

de obicei fractiile zecimale simple, precum 0.1 sau 0.7, sunt convertite intern cu o mica pierdere de precizie; aceasta poate sa duca la rezultate mai putin exacte. De exemplu: floor( 0,1 + 0,7*10) intoarce de obicei 7 in loc de asteptatul 8, rezultatul reprezentarii interne fiind de genul 7,9999999999; este imposibil sa se exprime cu exactitate fractiile zecimale cu numar infinit de cifre; de exemplu, 1/3 in forma zecimala devine 0,33333333...; daca aveti nevoie de o precizie mai mare in compararea valorilor in virgula mobila trebuie sa utilizati functiile matematice de precizie arbitrara.
Siruri de caractere
Sirurile de caractere pot fi delimitate de ghilimele sau apostrofuri, in ultimul caz inhibandu-se evaluarea variabilelor din interiorul sirului respectiv (exact ca la bash).

Daca sirul de caractere este delimitat de ghilimele atunci variabilele din interiorul sirului vor fi evaluate si inlocuite prin valoarea lor. Ca si in C sau Perl, caracterul backslash (\) este utilizat pentru a proteja un carcater special.

Secvente escape Valoare
\n Linie noua (linefeed, LF sau 0x0A in ASCII)
\r Intoarcere la linie (carrige return, CR sau OxOD in ASCII)
\t Tab orizontal (HT sau 0x09 in ASCII)
\\ Backslash
\$ Semnul dolarului
\" Ghilimele
\a0-7i A1,3S Ordinea caracterelor corespunzand expresiei normale este un caracter in baza 8
\xa0-9A-Fa-fi A1,2S Ordinea caracterelor corespunzand expresiei normale este un caracter in baza 16




Orice caracter se poate transforma, teoretic, in secveta escape, dar se produce un avertisment la cel mai inalt nivel. A doua metoda incadreaza sirurile intre apostrofuri; in acest caz singurele secvente escape intelese sunt '\\' si '\'. Variabilele nu vor fi expandate intr-un sir incadrat intre apostrofuri. O alta metoda de a delimita sirurile este folosirea sintaxei doc '<<<'. Dupa acest delimitator trebuie specificat un identificator, apoi sirul de caractere propriu-zis si, in incheiere, acelasi identificator care a precedat sirul.

Exemplul 2.2.3:

$str = <<< EOD // Identificatorul de inceput
Exemplu de serie ingloband linii multiple utilizand sintaxa heredoc.
EOD; // Identificatorul de sfarsit

/* Exemplu mai complex cu mai multe variabile */ class joc
A var $joc; var $bar; function joc()
A
$this->joc = 'Joc';
$this->bar = array( 'Bar 1', 'Bar 2', 'Bar 3');
S
S

$joc = new joc();
$name = 'MyName'; echo <<< EOT
My name is "$name". I am printing some $joc->joc.
Now, I am printing some A$joc->bara1iS. This should print a capital 'A': \x41
EOT;
Sirurile pot fi concatenate utilizand operatorul '.', operatorul '+' fiind impropriu pentru aceasta operatie.

Exemplul 2.2.4:

/* Asignarea unui sir */
$str = "Aceasta este o serie";

/* Concatenarea sirului cu un text nou */
$str = $str . " Cu mai mult text";

/* Un alt mijloc de adaugare, folosind o secventa escape newline */
$str .= " si o nous linie la sfarsit.\n";

/* Variabilele dintr-un sir inclus intre apostrofuri se pot evalua */
$num = 9;
$str = '<p>Numar: $num</p>';

/* Obtine primul caracter al sirului */
$str = 'Un test.';
$first = $stra0i;

/* Obtine ultimul caracter al sirului */
$str = 'Un alt test.';
$last = $stra strlen( $str) - 1i;
Conversia sirurilor
Cand un sir este evaluat ca valoare numerica, valoarea si tipul rezultat sunt decise dupa cum urmeaza:

sirul va fi evaluat ca un double daca contine unul din caracterele '.', 'e' sau 'E'. Altfel va fi evaluat ca un intreg; valoarea este data de inceputul sirului. Daca sirul incepe cu o data numerica valida, aceasta va fi valoarea utilizata. Altfel valoara va fi 0. O data numerica valida este formata din semn (optional), una sau mai multe cifre (optional un puct zecimal), incheiate eventual cu un exponent. Acest exponent ('e' sau 'E') este urmat de una sau mai multe cifre. Cand prima expresie este un sir tipul varibilei va depinde de a doua expresie.
Exemplul 2.2.5:

$aaa = 1 + "10.5"; // $aaa este double (11.5)
$aaa = 1 + "-1.3e3"; // $aaa este double (-1299)
$aaa = 1 + "bob-1.3e3"; // $aaa este integer (1)
$aaa = 1 + "bob3"; // $aaa este integer (1)
$aaa = 1 + "10 Small Pigs"; // $aaa este integer (11)
$aaa = 1 + "10 Little Piggies"; // $aaa este integer (11)
$aaa = "10.0 pigs" + 1; // $aaa este double (11)
$aaa = "10.0 pigs" + 1.0; // $aaa este double (11)
Tablouri
In PHP tablourile se comporta si ca tablouri asociative (hash tables) si ca tablouri indexate (vectori).

Tablouri unidimensionale
PHP accepta atat tablouri scalare cat si asociative. De fapt nu exista nici o diferenta intre cele doua. In PHP tabolurile se pot crea utilizand functiile list() si array() sau se poate seta explicit fiecare element din tablou.

Exemplul 2.2.6:

# Exemplul A:

$aa0i = "abc";
$aa1i = "def";
$ba"aaa"i = 13;
Se poate de asemenea crea un tablou adaugandu-i valori. De exemplu, putem extinde tabloul $a ca in exemplul de mai jos (exemplul 2.2.6):

# Exemplul B:
$aai = "hello";
// $aa2i == "hello"
$aai = "world";
// $aa3i == "world"
Vectorii pot fi sortati utilizand functii specializate: asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), si uksort().

Puteti numara elementele tabloului utilizand functia count().

Puteti parcurge un tablou utilizand functiile next(), prev() si each().

Tablouri multidimensionale
Tablourile multidimensionale sunt in realitate tablouri simple. Pentru fiecare dimensiune a tabloului trebuie adaugata o alta dimensiune adimi la final.

$aa1i = $f; // Tablou unidimensional
$aa"aaa"i = $f; // Tablou unidimensional
$aa1ia0i = $f; // Tablou bidimensional
$aa"aaa"ia2i = $f; // Indicii asociativi si numerici se pot combina
$3a3ia"bar"i = $f; // Indicii numerici si asociativi se pot combina
$aa"aaa"ia4ia"bar"ia0i = $f; // Tablou cu patru dimensiuni
In PHP nu este posibila referirea tablourilor multidimensionale direct intr-un sir.

Exemplul urmator nu va furniza rezulatul asteptat:

$aa3ia'bar'i = 'Bob'; echo "Acesta nu merge: $aa3iabari";
Exemplul de mai sus va afisa: Acesta nu merge: arrayabari. Operatorul de concatenare poate fi utilizat pentru a corecta acest lucru:

$aa3ia'bar'i = 'Bob'; echo "Acesta nu merge: " . $aa3iabari;
In PHP 4.0 problema aceasta poate fi rezolvata incluzand referinta la tabloul din interiorul sirului intre acolade ca in exemplul de mai jos:

$aa3ia'bar'i = 'Bob'; echo "Acesta nu merge: A$aa3iabariS";
Puteti completa o matrice in multe moduri, dar important este sa intelegeti cum puteti sa utilizati functia array() pentru tablouri asociative.

Exemplul 2.2.7:

# Exemplul A:
$aa"culoare"i = "rosu";
$aa"aroma"i = "dulce";
$aa"forma"i = "rotund";
$aa"nume"i = "mar";
$aa3i = 4;

# Exemplul B:
$a = array(
"culoare" => "rosu",
"aroma" => "dulce",
"forma" => "rotund",
"nume" => "mar",
3 => 4
);
Pentru tablouri asociative multidimensionale putem imbrica functia array() ca in exemplul de mai jos: (exemplul 2.2.8)

$a = array(
"mar" => array(
"culoare" => "rosu",
"aroma" => "dulce",
"forma" => "rotund"
),
"portocala" => array(
"culoare" => "potocaliu",
"aroma" => "acru-amarui",
"forma" => "rotund"
),
"banana" => array(
"culoare" => "galben",
"aroma" => "placuta",
"forma" => "bananoida"

)
); echo $aa"mar"ia"aroma"i; // Va afisa dulce
Obiecte
Pentru a crea o variabila de tipul obiect dorit, si eventual pentru a o initializa, se foloseste operatorul new:

Exemplul 2.2.9:

class aaa
A function do_aaa()
A echo "Doing aaa.";
S
S
$bar = new aaa;
$bar->do_aaa();
Conversia automata a tipurilor
PHP nu accepta definirea explicita a tipului in definirea variabilelor, tipul unei variabile fiind determinat de contextul in care acea variabila este utilizata. Acesta inseamna ca daca atribuiti variabilei var un sir de caractere, var va deveni sir. Daca ii atribuiti o valoare intrega, var va deveni un intreg.

Un exemplu de conversie automata a tipului apare la utilizarea operatorului '+'. Daca vre-un operand este double, atunci toti operanzii sunt evaluati la double, si rezultatul va fi un double. Altfel, operanzii vor fi interpretati ca intregi si rezultatul va fi tot un intreg. Retineti ca acest mod de evaluare nu modifica tipul operanzilor care intervin in expresie, ci numai modul in care ei sunt evaluati.

Exemplul 2.2.10:

$bbb = "0"; // $bbb este sir de caractere (ASCII 48)
$bbb++; // $bbb este sirul de caractere "1" (ASCII 49)
$bbb += 1; // $bbb este acum de tip intreg (2)
$bbb = $bbb + 1.3; // $bbb este acum de tip double (3.3)
$bbb = 5 + "10 Little Piggies"; // $bbb este de tip intreg (15)
$bbb = 5 + "10 Small Pigs"; // $bbb este de tip intreg (15)
Observatie: conversia automata de la un tip simplu la tipul tablou este uzual nedefinita.

$a = 1; // $a este un intreg
$aa0i = "f"; // $a devine un vector de forma "f"
Desi aparent variabila $a a fost transformata intr-un tablou cu primul element f, exemplul urmator nu ofera un rezultat la fel de clar:

$a = "1"; // $a este un sir
$aa0i = "f"; // Ce se intampla cu offset-ul sirului?
Conversia explicita a tipurilor
Conversia explicita a tipurilor (cast) se face in acelasi mod ca in C: numele tipului dorit este scris in paranteze inaite de numele variabilei.

$a = 10; // $a este un intreg
$bar = (double) $a; // $bar este un double
Conversiile permise sunt:

(int), (integer) - conversia la intreg
(real), (double), (float) - conversie la double
(string) - conversie la sir
(array) - conversie la tablou
(object) - conversie la obiect
Observati ca eticheta si spatiile sunt permise intre paranteze, deci liniile urmatoare sunt echivalente:

$a = (int) $bar;
$a = ( int ) $bar;
$a = (int)$bar;
Este posibil ca rezultatul conversiei explicite intre doua tipuri sa nu fie evident.

De exemplu convertind un scalar sau un sir de caractere la tipul array, respectiva variabila va deveni primul element al tabloului ca in exemplul de mai jos:

$var = 'ciao';
$arr = (array) $var; echo $arra0i; // Afiseaza ciao
Cand convertiti un scalar sau o variabila de tip sir de caractere la un obiect, respectiva variabila va deveni un atribut al obiectului, atribut numit scalar.

Exemplul 2.2.11:

$var = 'ciao';
$obj = (object) $var; echo $obj->scalar; // Afiseaza ciao


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui referat, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza referatul:
In prezent referatul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite referat | Harta site | Adauga in favorite
Colt dreapta