< PHP

A PHP jellemzői

Szerző: Sallai András

Copyright © Sallai András, 2011-2020

Licenc: CC Attribution-Share Alike 4.0 International

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:

<?php $szam = 30; include '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

@print($a);

Forrás:

https://www.php.net/manual/en/language.operators.errorcontrol.php

PHP modulok lekérdezése

A phpinfo() függvény használata:

<?php phpinfo();
<?php phpinfo(INFO_MODULES);
<?php print_r(get_loaded_extensions());
<?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'));"