Kapitola 8. Proměnné

Obsah
Základy
Předdefinované proměnné
Kontext ("scope") proměnné
Proměnné s proměnnými názvy
Promměné zvenčí PHP

Základy

Proměnné jsou v PHP reprezentovány znakem dolaru , následovaným názvem příslušné proměnné . V názvech proměnných se rozlišuje velikost písmen .

Názvy proměnných jsou podřízeny stejným pravidlům jako jiná návěští v PHP . Platný název proměnné začíná písmenem nebo podtržítkem , následovaným libovolným počtem písmen , číslic nebo potržítek . Jako regulární výraz to lze zapsat takto : ' [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* '

Poznámka : Pro naše účely zde budeme za písmena považovat znaky a-z , A-Z a ASCII znaky od 127 do 255 ( 0x7f-0xff ) .

 
$var

 
=

 
"

 
Bob"

 
;

 
$Var

 
=

 
"Joe"

 
;

 
echo

 
"$var

 
,

 
$Var"

 
;

 
/

 
/

 
vypíše

 
"Bob

 
,

 
Joe

 
"

 
$4site

 
=

 
'not

 
yet'

 
;

 
/

 
/

 
neplatné

 
;

 
začíná

 
číslicí

 
$_4site

 
=

 
'not

 
yet'

 
;

 
/

 
/

 
platné

 
;

 
začíná

 
podtržítkem

 
$täyte

 
=

 
'mansikka'

 
;

 
/

 
/

 
platné

 
;

 


 
'

 
je

 
ASCII

 
228

 
.





V PHP 3 mají proměnné vždy přiřazenu hodnotu . To znamená , že když přiřadíte výraz do proměnné , celá hodnota původního výrazu se zkopíruje do cílové proměnné . Tedy , například , po přiřazení hodnoty jedné proměnné do druhé , změna jedné z nich se na druhé neprojeví . Více informací o tomto způsobu přiřazení viz Výrazy .

PHP nabízí jiný způsob přiřazení hodnot proměnným : přiřazení odkazu . To znamená , že nová proměnná jednoduše odkazuje ( jinými slovy , "stává se aliasem " nebo "ukazuje na" ) na původní proměnnou . Změny na nové proměnné se projeví na původní a naopak . To také znamená , že se nic nekopíruje ; proto je přiřazení rychlejší . Avšak toto zrychlení bude zjistitelné pouze v těsných cyklech nebo při přiřazování velkých polí či objektů .

Pro přiřazení odkazu stačí jednoduše před proměnnou , která bude přiřazována ( zdrojová proměnná) , předřadit ampersand ( ) . Například následující kus kódu vypíše dvakrát ' Jmenuji se Bob ' :

 
?php

 
$foo

 
=

 
'

 
Bob'

 
;

 
/

 
/

 
Přiřadí

 
hodnotu

 
'Bob

 
'

 
do

 
$foo

 
$bar

 
=

 
$foo

 
;

 
/

 
/

 
Odkaz

 
$foo

 
přes

 
$bar

 
.

 
$bar

 
=

 
"Jmenuji

 
se

 
$bar"

 
;

 
/

 
/

 
Změna

 
$bar..

 
.

 
echo

 
$bar

 
;

 
echo

 
$foo

 
;

 
/

 
/

 
$foo

 
je

 
také

 
změněno

 
.

 
?





Jednou z důležitých věcí , které je třeba si uvědomit , je to , že přes odkazy lze přiřazovat pouze pojmenované proměnné .

 
?php

 
$foo

 
=

 
25

 
;

 
$bar

 
=

 
$foo

 
;

 
/

 
/

 
Toto

 
je

 
platné

 
přiřazení

 
.

 
$bar

 
=

 
(24

 
*

 
7)

 
;

 
/

 
/

 
Neplatné

 
;

 
odkazuje

 
se

 
nepojmenovaný

 
výraz

 
.

 
function

 
test(

 
)

 
{

 
return

 
25

 
;

 
}

 
$bar

 
=

 
test()

 
;

 
/

 
/

 
Neplatné

 
.

 
?