Sunteți pe pagina 1din 3

O a doua posibilitate de a accesa o variabil definit n afara funciei este folosirea vectorului $GLOBALS: Cod: <?

php $a = 1; function test () { echo $GLOBALS ["a"]; } test (); ?> Variabilele pot fi de mai multe tipuri, nu doar numere. PHP are opt tipuri de variabile. Patru dintre acestea sunt tipuri scalare (boolean, integer, float i string), dou sunt tipuri compuse (array i object), iar alte dou sunt tipuri speciale (resource i null). De asemenea, din motive de lizibilitate, au fost introduse trei pseudotipuri: mixed, number i callback. Mai exist i tipul double, dar semnificaia acestuia este aceeai cu cea a tipului float. Cele dou denumiri coexist doar din motive "istorice". n PHP, de obicei, tipul unei variabile nu este specificat de ctre programator, ci este stabilit n timpul execuiei n funcie de contextul n care este folosit variabila. De exemplu, urmtoarea instruciune PHP va construi un vector cu dou elemente, dintre care unul este de tip string, iar cellalt de tip boolean: $a = array ("ch" => "string", 12 => TRUE); Cheile pot avea i valori negative. Dac nu exist chei de tip integer, atunci valoarea va fi ataata cheii 0. De exemplu, urmtoarele dou instruciuni sunt echivalente: array (5 => 43, 32, 56, "b" => 12); array (5 => 43, 6 => 32, 7 => 56, "b" => 12); De asemenea, exist posibilitatea de a crea un element nou fr a-i preciza cheia. Sintaxa are forma $vector [] = valoare; aceast instruciune are ca efect adugarea unui element a crui cheie este un numr ntreg mai mare cu 1 dect cel mai mare numr ntreg care este cheie a unui alt element al vectorului. Dac nu exist nici o astfel de cheie, atunci noul element va avea cheia 0. De exemplu, urmtoarele dou secvene sunt echivalente: $a [5] = 1; ............................ $a [5] = 1; $a [6] = 2; ............................ $a [] = 2; - notaia heredoc. Acest tip de notaie a fost introdus la versiunea 4 a interpretorului PHP. Pentru a specifica un ir de caractere folosind aceast notaie trebuie utilizat operatorul "<<<" urmat de un identificator ales de utilizator. Toate caracterele care se afl ntre operatorul "<<<" urmat de un identificator pe o singur linie, i acelai identificator pe o alt linie vor constitui valoarea irului de caractere. De exemplu, instruciunea: Cod: $str=<<<SF Acesta este un exemplu de utilizare a sintaxei

heredoc SF; $a = array ('denumire' => 'portocala', 'familie' => 'citrice', 'culoare' => 'portocaliu', 'forma' => 'rotunda', 'gust' => 'dulce', 4); Cheia elementului cu valoarea 4 va fi numrul ntreg 0 deoarece nu exist nici o alt cheie care este numr ntreg. O alternativ de construire a acestui vector este urmtoarea: Cod: $v['denumire'] = 'portocala'; $v['familie'] = 'citrice'; $v['culoare'] = 'portocaliu'; $v['forma'] = 'rotunda'; $v['gust'] = 'dulce'; $v[] = 4; Exemplul urmtor ilustreaz cum putei folosi vectorii la afiarea unei pagini cu text colorat: < Cod: $colors = array (`red`, `green`, `blue`, `silver` ); foreach ($colors as $color) { echo "<FONT size = 4 color = $color>"; echo "<b>Acest text este <i>$color!</i>"; echo "</b></FONT><br>"; } Tipul object: Pentru a defini un obiect care poate fi folosit pentru afiarea mesajului SALUTARE LUME! se scrie urmtoarea secven: Cod: class salutare { function Displaysalutare () { echo "SALUTARE LUME!"; } } $a = new salutare; $a->Displaysalutare();

Orice variabil de un anumit tip poate fi convertit ntr-un obiect. Dac variabila respectiv este un obiect, atunci ea nu va fi modificat. n caz contrar, efectul conversiei este crearea unei noi instane a clasei stdClass. Dac variabila are tipul NULL, atunci noua instan va fi vid. n toate celelalte cazuri instana va conine o variabil membru numit scalar a crei valoare va fi cea a variabilei convertite. Pentru conversii vom folosi instruciuni de tipul $obiect = (object) "SALUTARE LUME!" Dup realizarea conversiei vom putea tipri mesajul SALUTARE LUME! folosind instruciunea echo $obiect->scalar; $a &= $b is short for $a = $a & $b which is the bitwise-and operator. $a =& $b assigns $a as a reference to $b. $a & $b And Bits that are set in both $a and $b are set. $a | $b Or (inclusive or) Bits that are set in either $a or $b are set. $a ^ $b Xor (exclusive or) Bits that are set in $a or $b but not both are set. ~ $a Not Bits that are set in $a are not set, and vice versa. $a << $b Shift left Shift the bits of $a $b steps to the left (each step means "multiply by two") $a >> $b Shift right Shift the bits of $a $b steps to the right (each step means "divide by two")

S-ar putea să vă placă și