Dátové typy a operátory
Vzhľadom k faktu, že jazyk PHP je dynamicky typovaný, nepatrí definícia dátových typov k syntaxi jazyka priamo. Dátové typy sú však používané na upresnenie typov parametrov a návratových hodnôt funkcií.
Skalárne dátové typy
| Dátový typ | Názov | Popis |
|---|---|---|
bool |
Logická hodnota | hodnoty TRUE alebo FALSE |
float double real |
Reálne číslo | $x = 0.075;$y = 75.0E-3; |
integer |
Celé číslo | $x = 53; // desiatková sústava$y = 065; // osmičková sústava$y = 0x35; // šestnástková sústava |
string |
Reťazec | $s = "reťazec znakov"$s = 'reťazec znakov' |
Ak je reťazec ohraničený úvodzovkami, tak sú vo vnútri reťazca najskôr vyhodnotené všetky premenné a výrazy v zložených zátvorkách.
Zložené dátové typy
| Dátový typ | Názov | Popis |
|---|---|---|
array |
Pole | Dátový typ reprezentujúci usporiadané zobrazenie kľúčov (celé čísla alebo reťazce) na hodnoty. Hodnoty môžu byť opäť typu pole, čím je možné vytvárať pole s ľubovoľným počtom rozmerov. |
object |
Objekt | Na vytvorenie dátového typu object slúži operátor new, za ktorým nasleduje meno triedy, ktorej má byť objekt inštanciou. |
Špeciálne dátové typy
| Dátový typ | Názov | Popis |
|---|---|---|
resource |
(vonkajší) Zdroj | Dátový typ, ktorého inštancie obsahujú odkazy na vonkajšie (aj vzdialené) zdroje. Tieto inštancie sú vytvárané funkciami na to určenými (napr. otvorenie súboru, vytvorenie obrázku, pripojenie k databáze). Hodnoty môžu byť opäť typu pole, čím je možné vytvárať pole s ľubovoľným počtom rozmerov. $fh = fopen("subor.txt", "r") |
null |
Neznáma hodnota | Jedinou možnou hodnotou špeciálneho typu null je NULL vyjadrujúci nešpecifikovanú hodnotu (tj. premenná bez hodnoty).$x = NULL; |
Aritmetické operátory
| Operátor | Názov | Popis |
|---|---|---|
+ |
Plus | Súčet celých alebo reálnych čísel.$x + $y |
- |
Mínus | Rozdiel celých alebo reálnych čísel.$x - $y |
* |
Krát | Súčin celých alebo reálnych čísel.$x * $y |
/ |
Deleno | Delenie celých čísel vráti celé číslo. Ak je aspoň jeden operand reálne číslo, vráti číslo reálne.$x / $y |
% |
Modulo | Zvyšok po delení celých čísel.$x % $y |
Logické operátory
| Operátor | Názov | Popis |
|---|---|---|
and alebo && |
A zároveň | Vráti logický súčin operandov.$x and $y$x && $y |
or alebo || |
Alebo | Vráti logický súčet operandov.$x or $y$x || $y |
xor |
Exkluzívny logický súčet | Vráti exkluzívny logický súčet operandov (nonekvivalenciu).$x xor $y |
! |
Negácia | Vráti negáciu operandu.! $x |
Operátory inkrementácie a dekrementácie
| Operátor | Názov | Funkcia |
|---|---|---|
++$a |
Preinkrementácia | Inkrementuje $a a potom vráti $a. |
$a++ |
Postinkrementácia | Vráti $a a potom inkrementuje $a. |
--$a |
Predekrementácia | Dekrementuje $a a potom vráti $a. |
$a-- |
Postdekrementácia | Vráti $a a potom dekrementuje $a. |
Operátory na úrovni bitov
| Operátor | Názov | Funkcia |
|---|---|---|
& |
Logický súčin | Vo výsledku nastaví bity, ktoré sú nastavené súčasne v oboch operandoch.$a & $b |
| |
Logický súčet | Vo výsledku nastaví bity, ktoré sú nastavené aspoň v jednom z operandov.$a | $b |
^ |
Exkluzívny logický súčet (bitová nonekvivalencia) | Vo výsledku nastaví bity, ktoré sú v oboch operandoch navzájom rôzne.$a ^ $b |
~ |
Negácia | Vo výsledku nastaví bity, ktoré nie sú nastavené v operande a naopak.~ $a |
« |
Bitový posun vľavo | Vráti ľavý operand s bitmi posunutými vľavo o počet krokov daných hodnotou pravého operandu.$a « $b |
» |
Bitový posun vpravo | Vráti ľavý operand s bitmi posunutými vpravo o počet krokov daných hodnotou pravého operandu.$a » $b |
Porovnávacie operátory
| Operátor | Názov | Funkcia |
|---|---|---|
== |
Rovnosť | Vráti TRUE, ak obsahujú operandy rovnakú hodnotu.$a == $b |
!= alebo <> |
Nerovnosť | Vráti TRUE, ak obsahujú operandy rôznu hodnotu.$a != $b$a <> $b |
=== |
Identita | Vráti TRUE, ak obsahujú operandy rovnakú hodnotu a naviac sú rovnakého typu.$a === $b |
!== |
Neidentita | Vráti negáciu identity.$a !== $b |
> |
Väčší | Vráti TRUE, ak je ľavý operand ostro väčší ako pravý operand.$a > $b |
>= |
Väčší alebo rovný | Vráti TRUE, ak je ľavý operand väčší alebo rovný pravému operandu.$a >= $b |
< |
Menší | Vráti TRUE, ak je ľavý operand ostro menší ako pravý operand.$a < $b |
<= |
Menší alebo rovný | Vráti TRUE, ak je ľavý operand menší alebo rovný pravému operandu.$a <= $b |
?: |
Ternárna podmienka | Vráti hodnotu druhého operandu, ak je prvý operand TRUE. Inak vráti hodnotu tretieho operandu.$a ? $b : $c |
Operátory typovej konverzie
| Operátor | Funkcia | Príklad |
|---|---|---|
(bool) |
Pretypuje na logickú hodnotu. | $a = (bool) $b; |
(int) (integer) |
Pretypuje na celé číslo. | $a = (int) $b |
(real) (double) (float) |
Pretypuje na reálne číslo. | $a = (real) $b |
(string) |
Pretypuje na reťazec. | $a = (string) $b |
(array) |
Pretypuje na pole. | $a = (array) $b |
(object) |
Pretypuje na objekt (inštanciu triedy StdClass). |
$a = (object) $b |
Operátory pre prácu s objektmi a triedami
| Operátor | Názov | Funkcia |
|---|---|---|
new |
Nová inštancia triedy (objekt) | Vráti novú inštanciu triedy, ktorej názov a prípadné parametre konštruktora sú dané operandom. Inštanciu je potrebné priradiť premennej.new X(5); |
clone |
Nový klon inštancie triedy (objektu) | Vráti nový klon objektu, ktorý je daný operandom.clone $a; |
instanceof |
Príslušnosť objektu k triede | Vráti TRUE, ak je ľavý operand (typu object) inštanciou triedy pravého operandu (typu class).$x instanceof X; |
:: |
Kontext triedy | Vráti kontext triedy danej operandom. Je zapisovaný postfixovo (vpravo).MojaTrieda:: |
-> |
Kontext objektu | Vráti kontext objektu daného operandom. Je zapisovaný postfixovo (vpravo).$a -> |
= |
Priradenie | Priradí ľavému operandu odkaz na tú istú inštanciu, na ktorú odkazuje operand vpravo.$a = $b |
== |
Rovnosť | Vráti TRUE, ak majú oba operandy totožné atribúty obsahujúce rovnaké hodnoty a sú inštanciou tej istej triedy.$a == $b |
=== |
Identita | Od PHP 5 vráti TRUE, ak odkazujú oba operandy na tú istú inštanciu (vo verzii 4 to isté ako rovnosť)$a === $b |
Ďalšie operátory
Operátor pre riadenie chýb
Keď umiestnime operátor "zavináč" (@) pred ľubovoľný výraz, potlačí (takmer) akékoľvek chybové hlásenie, ktoré sa vyskytne pri vyhodnocovaní daného výrazu.
Ak je v konfigurácii PHP servera nastavená direktíva track_errors, prípadné chybové hlásenie je uložené do premennej $php_errormsg.
Operátor priradenia
Základným operátorom priradenia je znamienko rovnosti (=). Vráti priradenú hodnotu, ktorú skopíruje z pravého do ľavého operandu (výnimkou je operátor priradenia objektu, viď Operátory pre prácu s objektmi a triedami)
Existujú aj kombinované operácie priradenia. Vyzerá to nasledovne:
// $y bude obsahovať 1 a $x 6
$x = ($y = 1) * 6;
// $y bude obsahovať 7 a $x -1
$x -= ($y += $x);
Vykonávací operátor
Akýkoľvek reťazec zapísaný medzi obrátené apostrofy bude predaný shellu operačného systému a vykonaný. Výsledok sa nevypíše, ale bude vrátený ako výsledok tohto operátora.
$currdir = `pwd`;
Ak je v konfigurácii nastavená direktíva safe_mode, nie je možné tento operátor použiť.
Operátor zreťazenia
Bodka (.) je operátor spájajúci dva reťazce. Vráti reťazec, ktorý vznikne pripojením reťazca pravého operandu za koniec reťazca ľavého operandu.
// vypíše: "toto bude spojené"
echo "toto bude "."spojené";
$a = "Ahoj ";
$b = $a . "svet!";// teraz $b obsahuje "Ahoj svet!"
$a = "Ahoj ";
$a .= "svet!";// teraz $a obsahuje "Ahoj svet!"

