Forum und email

Változók

Table of Contents

Alapok

PHP-ban a változókat egy dollárjel utáni változónév jelöli. A változónevek érzékenyek kis- és nagybetűk különbözőségére.

A változónevekre a PHP más jelzőivel azonos szabályok vonatkoznak. Egy érvényes változónév betűvel vagy aláhúzással kezdődik, amit tetszőleges számú betű, szám vagy aláhúzás követ. Reguláris kifejezéssel kifejezve ez a következőt jelenti: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Note: Ebben az esetben egy betű lehet az angol abc egy betűje a-z-ig és A-Z-ig, valamint a 127-től 255-ig terjedő (0x7f-0xff) ASCII kódú karakterek.

Lásd még a Változókkal kapcsolatos függvényeket.

<?php
$var 
'Géza';
$Var 'János';
echo 
"$var, $Var";           // kiírja, hogy "Géza, János"

$4site        'ez nem jó'// nem érvényes, mert számmal kezdődik
$_4site       'ez ok';     // érvényes, aláhúzással kezdődik
$täyte        'mansikka';  // érvényes, az 'ä' a kiterjesztett ASCII 228-as karaktere
$tükörfúrógép 'árvíztűrő'// érvényes, ellenőrizheted egy ASCII táblában
?>

PHP 3-ban a változókhoz mindig értékek tartoznak. Vagyis ha egy kifejezést rendelünk egy változóhoz, az eredeti kifejezés egészének értéke másolódik a célváltozóba. Ez azt jelenti, hogy ha például egy változó értékét egy másikhoz rendeljük, egyikük megváltozása sincs hatással a másikra. Nézd át Kifejezések c. fejezetet, ahol az ilyen jellegű hozzárendelésekről több információ található.

PHP 4-től lehetőség van egy másik hozzárendelési módra: változó referencia szerinti hozzárendelésére. Ez azt jelenti, hogy az új változó egyszerűen hivatkozik (más szóval "alias lesz", vagy "rá mutat") az eredetire. Az új változón végzett változtatások az eredetit is érintik és fordítva. Ez azt is jelenti, hogy nem történik másolás; ekképpen a hozzárendelés gyorsabban történik meg. Igaz ugyan, hogy ez a sebességnövekedés csak "feszes" ciklusokban vagy nagy tömböknél ill. objektumok átadásakor jelentkezik.

Referencia szerinti értékadáshoz egyszerűen & jelet kell az átadandó változó neve elé írni. Az alábbi kód - például - kiírja kétszer, hogy 'Nevem Bob':

<?php
$ize 
'Bob';              // 'Bob' hozzárendelése $ize-hoz
$bigyo = &$ize;            // Hivatkozás $ize-ra $bigyo-ban.
$bigyo "Nevem $bigyo";   // $bigyo megváltoztatása...
echo $bigyo;
echo 
$ize;                 // $ize is megváltozott
?>

Fontos megjegyezni, hogy csak megnevezett változókra lehet referenciát létrehozni.

<?php
$ize 
25;
$bigyo = &$ize;      // Ez egy érvényes hozzárendelés.
$bigyo = &(24 7);  // Érvénytelen referencia egy névtelen kifejezésre.

function test()
{
   return 
25;
}

$bigyo = &test();    // Érvénytelen.
?>