Hozzárendelő operátorok
Ahhoz, hogy a változók értékeket kapjanak, valamilyen módon hozzá kell rendelni azt. Az alapértelmezett hozzárendelő operátor az "=" jel, ezt használjuk a legtöbbször. Az előző leckék példáiban ezt számtalanszor láthattuk: $valtozo = 'érték'; formában.
Tömbök esetében egy kulcshoz az "=>" jellel rendelünk hozzá értéket, így:
$tomb = array('kulcs' => 'kulcs értéke', 'kulcs2' => 'második kulcs értéke');
Ez alól kivétel az az eset, amikor a tömb elemét $tomb['kulcs'] formában hivatkozzuk, ilyenkor az érték hozzárendelése az "=" jellel történik:
$tomb['kulcs1'] = 'érték';
Megjegyzés
A számozott tömbök esetében automatikus kulcsérték növelést (auto-increment) érünk el, amennyiben a szögletes zárójeleket üresen hagyjuk. Ebben az esetben a tömb soron következő számú kulccsal növekedik.
Példa:
---------------------------
<?php
$tomb = array(); // üres tömb létrehozása
$tomb[] = 'első érték'; // első érték hozzárendelése a 0-ás kulccsal azonosított elemhez
$tomb[] = 'második érték'; // második érték hozzárendelése az 1-es kulcssal azonosított elemhez
print_r($tomb);
/* Mivel echo-t tömb esetében nem használhatunk, print_r-t használunk, hogy lássuk a tömb elemeit.
Kiírja: Array ( [0] => első érték [1] => második érték )
*/
?>
---------------------------
Számok esetén használt hozzárendelő operátorok
Egy változó értékének növeléséhez a "+=" operátort, míg a csökkentéséhez a "-=" operátort használhatjuk. Továbbá működnek a szorzás ("*="), osztás ("/=") és maradékos osztás ("%=") operátorok is:
---------------------------
<?php
$szam = 1;
$szam += 2; // a $szam változó értékének növelése 2-vel
echo $szam; // Kiírja: 3
echo "\n"; // Új sor karakter. Figyeljük meg a kettős idézőjelet!
$szam -= 1; // a $szam csökkentése 1-gyel
echo $szam; // Kiírja: 2
echo "\n";
$szam *= 20; // a $szam szorzása 20-szal
echo $szam; // Kiírja: 40
echo "\n";
$szam /= 2; // a $szam osztása 2-vel
echo $szam; // Kiírja: 20
echo "\n";
$szam %= 3; // a $szam maradékos osztása 3-mal
echo $szam; // Kiírja: 2
echo "\n";
?>
---------------------------
Megjegyzés
Figyeljük meg a fenti példában a sortörést, amelyet a "\n" hoz létre. Böngészőben azonban ez szóköznek fog látszani, mivel a böngésző html kódot vár a formázáshoz. A fenti példa szöveges terminálon futtatva szemlélteti a sortörést, böngészőből az oldal forrását nézve láthatjuk a sortörések helyét.
Szövegek esetén használt hozzárendelő operátor
Ha szöveges változó tartalmát akarjuk kibővíteni, akkor a rendelkezésünkre áll az összefűzés. String típusú tartalmakat a "." karakterrel tudjuk összefűzni:
$szoveg = 'első rész ' . ' második rész';
Amennyiben további résszel bővítenénk, akkor így tehetjük meg:
---------------------------
<?php
$szoveg = 'első rész ';
$szoveg .= 'második rész'; // hozzáadjuk a kibővítést
echo $szoveg; // Kiírja: első rész második rész
?>
---------------------------
TIPP
Habár a fenti példában a $szoveg .= 'második rész'; egyenértékű a $szoveg = $szoveg . 'második rész'; formával, tanácsos az elsőt használni, mivel a memóriafoglalások miatt gyorsabb. Ez főleg olyankor látványos, ha nagyon sok ilyen műveletet kell elvégezni, hatalmas mennyiségű adattal.
Hivatkozási operátor
Előfordulhat olyan eset, amikor úgy hozunk létre egy új változót, hogy egy másik, már létező változó tartalmára akarunk hivatkozni, annak másolása nélkül. Ezt a "&" operátorral tehetjük meg:
--------------------------
<?php
$elso_valtozo = 'eredeti változó';
$masodik_valtozo = &$elso_valtozo;
echo $masodik_valtozo; // Kiírja: eredeti változó
?>
--------------------------
-----------------------------------------------------------------------------------------------------
Feladatok
1. Határozzunk meg egy pozitív egész számot, adjunk hozzá 10-et, a kapott eredményből vonjunk le 3-at, majd az így kapott értéket szorozzuk meg 30-cal, utána pedig osszuk el 4-gyel, a kapott eredményt pedig írjuk ki!
2. Szövegösszefűzéssel írjuk le a nevünket!
3. Vegyünk fel két szöveges változót, amelybe két tetszőleges szöveget írjunk, hivatkozási operátorral hozzunk létre egy harmadikat, amely az elsőre mutat, majd fűzzük össze a harmadikat a másodikkal, és írjuk ki!