PHP si MySql (Programator Web 2)

DOCUMENTATIE CURS

string

Definitie
string este un tip de date folosit pentru a reprezenta siruri de caractere. Valorile de tip string se scriu (de cele mai multe ori) intre ghilimele simple (ex: $s = 'abc') sau intre ghilimele duble (ex: $s = "abc").

Exista diferente foarte importante intre cele doua sintaxe (folosirea ghilimelelor duble sau simple). Un string intre ghilimele simple este reprezentat exact asa cum este scris. In schimb, anumite caractere ce apartin unui string intre ghilimele duble vor avea inteles special.

Mai precis, in stringurile cu ghilimele duble se intampla doua lucruri:
  • variabilele sunt inlocuite cu valoarea lor
  • caracterele de control (newline, tab) pot fi reprezentate prin caracterul \ (backslash) urmat de alte caractere. ex: \n (newline) , \t (tab)
Nota
In browser (in HTML), newline-ul (\n) este interpretat ca un simplu spatiu. In schimb, cand vedem sursa paginii HTML newline-ul este chiar trecerea pe o linie noua.
Pentru a vizualiza in browser un newline trebuie, sa folosim <br />




Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
<?php
$numar = 5;
$d = "Numarul este $numar \n";
echo $d;
$e = "Linie2\nLinie3";
echo $e;
?>
1
2
3
Numarul este 5 
Linie2
Linie3




acelasi exemplu, folosind ghilimele simple (variabilele nu sunt substituite, si, in plus, secventa "\n" nu mai este speciala):



Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
<?php
$numar = 5;
$d = 'Numarul este $numar \n';
echo $d;
$e = 'Linie2\nLinie3';
echo $e;
?>
1
Numarul este $numar \nLinie2\nLinie3




Caracterul backslash (\) indeplineste rolul de a reprezenta caractere de control in stringurile cu ghilimele duble asa cum am vazut mai sus, dar mai indeplineste un rol, acela de escape character, adica ajuta la anularea caracterului special pentru anumite caractere pentru inserarea acestora in interiorul stringului. De exemplu, nu putem insera (decat precedate de backslash) ghilimele duble in interiorul unui string pe care-l scriem intre ghilimele duble , pentru ca interpretorul PHP va termina stringul acolo unde intalneste ghilimele duble. Similar, daca dorim inserarea caracterului dolar ($) in interiorul unui string cu ghilimele duble, interpretorul va incerca sa gaseasca o variabila, pentru a-i anula acest sens (de inceput de variabila) trebuie sa-l precedam cu backslash (\). La fel si in cazul inserarii ghilimelelor simple in interiorul unui string intre ghilimele simple.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$s = 'Il cheama O\'Connor. Probabil e irlandez ?'; 
echo $s;
echo "\n";
$s = "Caracterul \ are rol de \"escape character\" ";
echo $s;
echo "\n";
/* Caracterul \ poate fi folosit si pentru a-si anula propriului caracter special. */
$s = "Aici \\n nu voi mai avea un newline desi sunt intre ghilimele duble";
echo $s;
echo "\n";
$numar = 5;
$s ="Voi scrie chiar numele variabilei \$numar";
echo $s;
?>
1
2
3
4
Il cheama O'Connor. Probabil e irlandez ?
Caracterul \ are rol de "escape character" 
Aici \n nu voi mai avea un newline desi sunt intre ghilimele duble
Voi scrie chiar numele variabilei $numar


Sintaxa heredoc
Sintaxa heredoc este folosita pentru reprezentarea stringurilor in mod similar cu ghilimelele duble, prin urmare variabilele sunt inlocuite cu valorile lor, si pot fi inserate caractere de control cu ajutorul caracterului \. Heredoc are totusi un avantaj fata de ghilimelele duble, pentru stringuri mai complexe in care probabilitatea sa apara chiar ghilimelele duble in interiorul stringului este foarte mare. Mai ales cand stringul respectiv este cod html, si atributele din html sunt inconjurate de ghilimele duble. Pentru a folosi heredoc, scriem <<< de la capatul randului, apoi imediat un sir de caractere (numit identificator) apoi newline (trecem la linia urmatoare) si scriem sirul dorit. Apoi pe o noua linie, de la capat, scriem din nou identificatorul urmat de ;.

Sursa script Sursa HTML in browserVizualizare in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$prenume = 'John';
$nume = 'Doe';
/*
atat prima linie din heredoc (ce contine <<< urmate de identificator) 
cat si ultima linie (identificator si ;) trebuie sa NU contina alte caractere
 pe aceeasi linie inainte sau dupa.
Daca obtineti o eroare aici, verificati sa nu fie spatiu dupa <<<STR sau inainte de STR;
*/
$s = <<<STR
<table border="1" cellspacing="0" cellpadding="4">
<tr>
    <td>$prenume</td>
    <td>$nume</td>
</tr>
</table>
    Da, prenumele lui este "$prenume"
STR;
echo $s;
?>
1
2
3
4
5
6
7
<table border="1" cellspacing="0" cellpadding="4">
<tr>
    <td>John</td>
    <td>Doe</td>
</tr>
</table>
    Da, prenumele lui este "John"
John Doe
Da, prenumele lui este "John"


Concatenarea stringurilor
Important
Operatorul pentru concatenarea (unirea) stringurilor este punct (.).

Unul din cazurile cand avem nevoie de concatenare apare daca vrem sa afisam valoarea unei variabile in interiorul unui string intre ghilimele simple.

Sursa script Vizualizare in browser
1
2
3
4
5
6
7
8
9
<?php
$nume = 'Maria';
echo 'Se numeste $nume'; // output: Se numeste $nume
echo '<br /> ';
echo 'Se numeste '.$nume; // output: Se numeste Maria
echo '<br /> ';
echo "Se numeste $nume"; // nu e nevoie sa concatenam. output: Se numeste Maria
?>
Se numeste $nume
Se numeste Maria
Se numeste Maria


Alte exemple de concatenare:

Sursa script Vizualizare in browser
1
2
3
4
5
6
7
<?php
$prenume = 'Ion';
$nume = 'Popescu';
$str = '<b>'.$prenume.' '.$nume.'</b>';
echo $str;
?>
Ion Popescu


Important
Operatorul .= (punct urmat de egal) este echivalent cu adaugarea stringului din dreapta operatorului la stringul din stanga. Adica $str .= 'ceva'; este echivalent cu $str = $str . 'ceva';



Sursa script Vizualizare in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$str = '';
$cnp = '1720215440033';
$prenume = 'Ion';
$nume = 'Popescu';
$str .= $prenume;
$str .= ' ';
$str .= $nume;
$str .= ' are cnp: ';
$str .= $cnp;
echo '<h2>'.$str.'</h2>';
?>

Ion Popescu are cnp: 1720215440033



© 2006-2012 Crystal Mind Academy. All rights reserved