1. s podmienkou na začiatku:
while(vyraz){ prikazy; }
Alternatívny zápis:
while(vyraz): prikazy; endwhile;
2. s podmienkou na konci:
do { prikaz; } while(vyraz);
Nemá alternatívnu syntax.
3. s presným počtom opakovaní:
for(init;podm;iteracia) { prikazy; }
Alternatívny zápis:
for(init;podm;iteracia): prikazy; endfor;
4. špeciálny cyklus pre prechádzanie polí
foreach($pole as $index => $hodnota) { prikazy; }
kde sekcia $index => môže byť vynechaná, čiže bude len:
foreach($pole as $hodnota) { prikazy; }
1. Jednoduché vetvenie:
if (vyraz) { prikazy1; } else { prikazy2; }
Alternatívny zápis:
if (vyraz): prikazy1; else: prikazy2; endif;
2. Viacnásobné vetvenie:
if (vyraz1) { prikazy1; } elseif (vyraz2) { prikazy2; } elseif (vyraz3) { prikazy3; } else{ prikazy4; }
Aternatívny zápis:
if (vyraz1) : prikazy1; elseif (vyraz2): prikazy2; elseif (vyraz3): prikazy3; else: prikazy4; endif;
Rovnaký efekt sa dá dosiahnuť aj pomocou switch.
switch (vyraz) { case hodnota1: prikazy; break; case hodnota2: prikazy2; break; case hodnota3: prikazy3; break; default: prikazy4; }
Alternatívny zápis:
switch (vyraz): case hodnota1: prikazy; break; case hodnota2: prikazy2; break; case hodnota3: prikazy3; break; default: prikazy_4; endswitch;
Typy platnosti premenných:
- lokálne
- globálne
- superglobálne
- statické
Jedná sa o tzv. Error Control Operator, ktorý potláča generovanie chybových správ. Viac na php.net
Príklad:
<?php /* Intentional file error */ $my_file = @file ('non_existent_file') or die ("Failed opening file: error was '$php_errormsg'"); // this works for any expression, not just functions: $value = @$cache[$key]; // will not issue a notice if the index $key doesn't exist. ?>
Veľkosť písmen sa v PHP nerozlišuje, okrem názvu premenných. Teda premenné $var a $VAR sú dve rôzne. Avšak nezáleží na tom, či funkciu voláte ako strtolower alebo StrToLower.
Vo všeobecnosti parent::constructorParentName(), kde constructorParentName je názov konštruktora predka.
Príklad:
<?php class p { function p() { print "Parent's constructor\n"; } function p_test() { print "p_test()\n"; $this->c_test(); } } class c extends p { function c() { print "Child's constructor\n"; parent::p(); } function c_test() { print "c_test()\n"; } } $obj = new c; $obj->p_test(); ?>
Výstup:
Child's constructor Parent's constructor p_test() c_test()
Toto funguje aj v PHP 4. V PHP 5 bola pridaný konštruktor ako __construct – výhodou je, že nemusíte vedieť potom názov konštruktora predka, ani pri zmene názvu triedy meniť názov konštruktora pre správnu funkcionalitu. Potom vlastne môžete volať konštruktor predka triedy všeobecne:
parent::__construct()
Pomocou operátora :: môžeme volať statické metódy triedy, čiže tie, ktoré nevyžadujú inicializáciu objektu.
<?php $a = 5; $b = 'a'; echo (int)$$b; ?>
Vypíše sa 5. Je to preto, lebo operátor $$ je referenciou na obsah premennej b, čo je v tomto prípade a. Čiže vypíše sa hodnota premennej a.
Slúži na to funkcia func_num_args.
Príklad:
<?php function foo() { $numargs = func_num_args(); echo "Number of arguments: $numargs\n"; } foo(1, 2, 3); //outputs: Number of arguments: 3 ?>