Tartalomjegyzék
A PHP jellemzői
- Szerző: Sallai András
- Copyright © Sallai András, 2011-2020
- Web: https://szit.hu
A változók hatásköre
A beépített állományok
Készítsük el a következő két állományt:
- index.php
<?php $szam = 30; include 'b.inc';
- b.inc
<?php print $szam;
Hajtsuk végre az index.php állományt. A b.inc fájlban is használható a $szam változó.
Az .inc kiterjesztésű fájlokat általában include vagy require hívások célpontjai. Akkor szokták használni, ha nem szeretnék, hogy a szerver PHP fájlként értelmezze. Így viszont a forráskód látható a szerveren.
Függvények
Egy függvényen belül csak az ott létrehozott változók használhatók alapértelmezetten.
A következő program nem működik:
<?php $szam = 35; function kiir() { echo $szam; } kiir();
A global kulcsszó
<?php $szam = 35; function kiir() { global $szam; echo $szam; } kiir();
Több változó esetén a global kulcsszó után vesszővel tagolva soroljuk fel a változókat:
<?php $a = 30; $b = 35; function kiir() { global $a, $b; echo $a . " " . $b; } kiir();
A $GLOBALS használata
A $GLOBALS egy tömb, amely tartalmazza a globális változókat. A következő példának megfelelően ezt is használhatjuk:
<?php $a = 35; function kiir() { echo $GLOBALS["a"]; } kiir();
Statikus változó
A következő példában, statikus változó nélkül az $a változó növelése teljesen haszontalan:
<?php function kiir() { $a = 0; echo $a . " "; $a++; } kiir(); kiir();
Többszöri hívás esetén, minden újabb hívásnál az $a változó lenullázódik.
Ha az $a változót statikusként adom meg, akkor az újabb hívásig megmarad az értéke:
<?php function kiir() { static $a = 0; echo $a . " "; $a++; } kiir(); kiir();
Statikus változók és a kifejezések
Statikus változók esetén, amikor a változó előtt a static kulcsszó szerepel, nem lehet az egyenlőségjel jobboldalán kifejezés. Az alábbi példa teljesen rossz:
<?php function kiir() { static $a = 1 + 2; //rossz echo $a; } kiir();
Az értelmező hibát ad.
Hibaelnyomó operátor
PHP modulok lekérdezése
A phpinfo() függvény használata:
- index.php
<?php print_r(get_loaded_extensions());
- inde.php
<?php echo "<pre>"; print_r(get_loaded_extensions()); echo "<pre/>";
Parancssorból:
php -r "print_r(get_loaded_extensions());"
vagy:
php -r "var_dump(extension_loaded('json'));"