Tartalomjegyzék

< PHP

A PHP jellemzői

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

@print($a);

Forrás:

PHP modulok lekérdezése

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

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