Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

változók a php-ban egyfajta információs tároló, amely tartalmazhat Különféle típusok adatok (szöveg, számok, tömbök és így tovább). Általában a változók lehetővé teszik a bennük megadott információk létrehozását, tárolását, módosítását, majd gyors elérését.

Hogyan készítsünk változót PHP-ben

Kezdetben a változók tartalmazzák a jelet $ (dollár) - egy változó, majd a betűk használatának megjelölése Latin ábécé(a-tól z-ig és kicsik és nagyok), a végén bele tudom foglalni számok. A címben aláhúzás (nem a végén) is megengedett.

Hogyan nevezzük el a változókat:

$var
$változó
1945 dollár
$_változó
Hogyan ne nevezzünk el változókat:

$1 - csak egy számjegyből áll
$1var – a változónevet nem lehet számmal kezdeni
$/var - további karakterekből csak aláhúzás megengedett _
$változó – a cirill betűt a php dokumentáció engedélyezi, de nem ajánlott
$var iable – szóközök nem használhatók

Minden változóhoz hozzá van rendelve egy érték. Az előjel az érték hozzárendelésére szolgál. = (egyenlő). A szkript feldolgozása során egy változó értéke a különböző feltételektől függően többször változhat.

$város = "Moszkva"; // a $city változóhoz a karakterlánc (idézőjelben) Moszkva értéket rendeltünk
év $ = 1147; // és a $year változóhoz 1147 számértéket rendeltünk
?>

$név = "Sándor";
$Name = "Alex";
echo "$name, $Name"; // kiírja: "Alexander, Alexey"
?>

PHP változó kimenet

Külön elemeznie kell a változók megjelenítésének módját kimeneti nyilatkozatok, akinek munkáját az utolsó leckében elemeztük PHP oldal készítése. kimeneti operátorok. . Az alábbiakban néhány szemléltető példát adok megjegyzésekkel.

// Így állítjuk be a változók értékeit
$név1 = "Alex";
$name2 = "Sándor";

// Változók megjelenítése
echo $név2; // Kimenet: Alexander
echo "név1 a $név1"; // name1 Alexey

// Használata egyetlen idézőjel Kimenet
// változó neve, nem érték
echo "név1 a $név1"; // kimenet: név1 a $név1

// csak a változók értékeit jelenítheti meg
echo $név1; // Alekszej
echo $név1,$név2; // Alekszej Sándor
echo $name1." ".$name2; // Alekszej Sándor
echo "$név1, $név2"; // Alekszej, Sándor

visszhang<<Ez az "itt dokumentum" szintaxist használja a kimenethez
több sor $változó helyettesítéssel.
VÉGE;

PHP változó műveletek

Aritmetikai műveletek PHP-ben
Számértékek esetén számtani műveletek végezhetők: összeadás, kivonás, szorzás stb.

-$a(negáció) Változtasd meg $a jelét.
$a + $b(összeadás) $a és $b összege.
$a - $b(kivonás) $a és $b különbsége.
$a * $b(szorozzuk) $a és $b szorzata.
$a / $b(osztás) $a hányadosa osztva $b-vel.
$a % $b(modulo) $a egész maradéka osztva $b-vel.
Vegye figyelembe a példákat

$a = 2; // vegye figyelembe, hogy számok esetén az idézőjel nem kerül beírásra
$b = 3; // vegye figyelembe, hogy számok esetén az idézőjel nem kerül beírásra

$eredmény = $a + $b; // változók hozzáadása
echo $eredmény; // nyomtat 5

$eredmény = $b - $a; // változók hozzáadása
echo $eredmény; // nyomtat 1

Növelési és csökkentési műveletek PHP-ben
Ezek a műveletek elsősorban a ciklusok felépítésében lesznek hasznosak, amelyekről egy kicsit később fogunk beszélni.
előtag- a változó ELŐTT írt operátorok ( --$a; ++$a). A változtatások előtt adja vissza a változó értékét.
Postfix- a változó után írt operátorok ( $a--; $a--). Egy változó értékét adja vissza változtatásokkal.
Növekedés- az érték növelése.
Csökkenés- csökkenő érték.

++$a előtag növekménye. Növeli $a eggyel, és visszaadja $a értékét.
$a++ postfix növekmény. Visszaadja $a értékét, majd eggyel növeli $a értékét.
--$a előtag csökkenése. Csökkenti $a-t eggyel, és visszaadja $a értékét.
$a-- Postfix csökkenés. Visszaadja $a értékét, majd eggyel csökkenti $a értékét.
visszhang"

Postfix növekmény

";
$a = 5;
echo "5 legyen: " . $a++ . "\n";

visszhang"

előtag növekménye

";
$a = 5;
echo "6 legyen: " . ++$a . "\n";
echo "6 legyen: " . $a . "\n";

visszhang"

Postfix csökkenés

";
$a = 5;
echo "5 legyen: " . $a-- . "\n";

visszhang"

előtag csökkenése

";
$a = 5;
echo "4-nek kell lennie: " . --$a. "\n";
echo "4-nek kell lennie: " . $a . "\n";
?>

Hozzárendelési műveletek PHP-ben
Alap operátorúgy néz ki, mint a = . Első pillantásra úgy tűnhet, hogy ez az egyenlőség operátor. Valójában nem. Valójában a hozzárendelési operátor azt jelenti, hogy a bal oldali operandus megkapja a jobb oldali kifejezés értékét (azaz a kapott értékre van állítva). Kombinált operátorok- ezek olyan operátorok, amelyek lehetővé teszik a változók korábbi értékeinek használatát a következő műveletekhez (sztring változóhoz (szöveggel) vagy numerikus értékek hozzáadásához).

$a = ($b = 2) + 4; // eredmény: $a értéke 6, $b értéke 2.

$a = 2;
$a += 3; // az $a-t 5-re állítja, hasonlóan a következőhöz: $a = $a + 3;
$b = "Szia";
$b .= "Béke!"; // beállítja a $b-t "Hello World!"-re, mint például a $b = $b . "Ott!";

Vannak még összehasonlító műveletekÉs összerakós játékaik, de róluk a következő leckékben fogunk beszélni. Igyekszem nem ijesztgetni egyszerre nagy mennyiségű információval!)

13 évvel ezelőtt

Egy kis apróság, amire figyelni kell:

Ha te kikapcsolni RegisterGlobals és kapcsolódó, majd a get_defined_vars() használatával a következőkhöz hasonlót láthat:

sor
[ GLOBALS ] => Tömb
[ GLOBALS ] => Tömb
*REKURZIÓ*
[_POST] => Tömb()
[ _GET ] => Array()
[_COOKIE] => Tömb()
[ _FILES ] => Array()
)

[_POST] => Tömb()
[ _GET ] => Array()
[_COOKIE] => Tömb()
[ _FILES ] => Array()

)
?>

Figyeljük meg, hogy a $_SERVER nincs ott. Úgy tűnik, hogy a php csak akkor tölti be a szuperglobális $_SERVER-t, ha valahol használatban van. Ezt teheti:

nyomtatás"

" .htmlspecialchars(print_r(get_defined_vars(), true )) . "
" ;
nyomtatás"
" .htmlspecialchars (print_r ($_SERVER , true )) . "
" ;
?>

Ezután mindkét listában megjelenik a $_SERVER. Azt hiszem, ez "nem igazán baj, mert semmi rossz nem fog történni így sem, de azért ez egy érdekes érdekesség.

6 évvel ezelőtt

Mivel a get_defined_vars() csak azon a ponton kapja meg a változókat, ahol a függvényt meghívjuk, van egy egyszerű mód a változók definiálására az aktuális hatókörön belül.

// A php szkript legteteje
$vars = get_defined_vars();

// Most csináld a dolgod
$foo = "foo" ;
$bar = "sáv" ;

// Az aktuális hatókörben meghatározott összes változó lekérése
$vars = array_diff(get_defined_vars(), $vars);

visszhang"

"
;
print_r($vars);
visszhang"
" ;
?>

15 évvel ezelőtt

Itt van egy funkció, amely hibakeresési jelentést hoz létre megjelenítéshez vagy e-mailhez
a get_defined_vars használatával. Kiválóan alkalmas részletes pillanatkép készítéséhez anélkül
felhasználói bemenetre támaszkodva.

function generateDebugReport ($method , $defined_vars , $email = "undefined" )(
// Hibakeresési jelentés létrehozásának funkciója megjelenítésre vagy e-mailben.
// Használat: generateDebugReport(method,get_defined_vars(),email);
// Ahol a metódus "böngésző" vagy "e-mail".

// Hozzon létre egy figyelmen kívül hagyó listát a "get_defined_vars" által visszaadott kulcsokhoz.
// Például a HTTP_POST_VARS, HTTP_GET_VARS és mások azok
// redundáns (ugyanaz, mint _POST, _GET)
// Tartalmazza azokat a varokat is, amelyeket biztonsági okokból figyelmen kívül kell hagyni – pl. PHPSESSID.
$ignorelist =array("HTTP_POST_VARS" , "HTTP_GET_VARS" ,
"HTTP_COOKIE_VARS", "HTTP_SERVER_VARS",
"HTTP_ENV_VARS", "HTTP_SESSION_VARS",
"_ENV" , "PHPSESSID" , "SESS_DBUSER" ,
"SESS_DBPASS" , "HTTP_COOKIE" );

$időbélyeg = dátum("h/n/é h:h:s" );
$message = "A hibakeresési jelentés létrehozva $timestamp \n" ;

// Az utolsó SQL hiba lekérése a jó méréshez, ahol a $link az erőforrás azonosítója
// a mysql_connecthez. Írjon megjegyzést vagy módosítsa adatbázisát vagy absztrakciós beállításait.
globális $link ;
$sql_error = mysql_error($link);
if($sql_error )(
$message .= "\nMysql üzenetek:\n" . mysql_error($link);
}
// Végezze el a MySQL-t

// Használhat itt egy rekurzív függvényt. Érted az ötletet ;-)
foreach($defined_vars mint $key => $val )(
if(is_array ($val ) && ! in_array ($kulcs , $ignorelist ) && count ($val ) > 0 )(
$message .= "\n $kulcstömb (kulcs=érték):\n" ;
foreach($val mint $alkulcs => $subval )(
if(! in_array ($alkulcs , $ignorelist ) && ! is_array ($subval ))(
$üzenet .= $alkulcs . "=" . $subval . "\n" ;
}
elseif(! in_array ($alkulcs , $ignorelist ) && is_array ($subval ))(
foreach($subval mint $alalkulcs => $subsubval )(
if(! in_array ($alkulcs , $ignorelist ))(
$üzenet .= $alalkulcs . "=" . $subsubval . "\n" ;
}
}
}
}
}
elseif(!
is_array ($val ) && ! in_array ($kulcs , $ignorelist ) && $val )(
$message .= "\nVáltozó" . $kulcs. "=" . $val. "\n" ;
}
}

If($method == "böngésző" )(
echo nl2br($üzenet);
}
elseif($method == "e-mail" )(
if($email == "undefined" )(
$e-mail = $_SZERVER["SZERVER_ADMIN"];
}

$mresult = mail ($email , "Hibakeresési jelentés a következőhöz: " . $_ENV [ "HOSTNAME" ]. "" , $üzenet );
if($meredmény == 1 )(
visszhang "A hibakeresési jelentés sikeresen elküldve.\n";
}
más(
visszhang "Nem sikerült elküldeni a hibakeresési jelentést.\n";
}
}
}
?>

17 évvel ezelőtt

Egyszerű rutin a get_defined_vars objektum XML-lé konvertálására.

függvény obj2xml ($v , $indent = "" ) (
while (lista($kulcs , $val ) = mindegyik ($v )) (
if ($key == "__attr" ) folytatódik;
// Ellenőrizze a __attr
if (is_object ($val -> __attr )) (
while (lista($kulcs2 , $érték2 ) = mindegyik ($val -> __attr )) (
$attr .= " $key2 =\" $val2 \"" ;
}
}
else $attr = "" ;
if (is_array ($val ) || is_object ($val )) (
print(" $indent< $key$attr >\n");
obj2xml ($val , $indent . " " );
print(" $indent\n");
}
else print(" $indent< $key$attr >$val\n");
}
}

//Példaobjektum
$x -> név -> első = "János" ;
$x -> név -> utolsó = "Smith" ;
$x -> arr [ "Fruit" ] = "Bannana" ;
$x -> arr [ "Veg" ] = "Sárgarépa" ;
$y -> ügyfél = $x ;
$y -> ügyfél -> __attr -> id = "176C4" ;

$z = get_defined_vars();
obj2xml($z["y"]);
?>
ki fogja adni:


János
Kovács


Banán
sárgarépa

11 évvel ezelőtt

Megjegyzésként a get_defined_vars() nem ad vissza változó hivatkozások halmazát (ahogy reméltem). Például:

// definiál egy változót
$my_var = "foo" ;

// lekérjük a definiált változók listáját
$defined_vars = get_defined_vars();

// most próbálja meg megváltoztatni az értéket a visszaadott tömbön keresztül
$defined_vars [ "my_var" ] = "sáv" ;

echo $my_var , "\n" ;

?>

"foo"-t (az eredeti értéket) adja ki. Jó lenne, ha a get_defined_vars()-nak lenne egy opcionális argumentuma a hivatkozások létrehozására, de úgy gondolom, hogy ez egy meglehetősen speciális kérés. Megteheti saját maga (kevésbé kényelmesen) valami ilyesmivel:

$defined_vars = array();
$var_nevek = array_keys(get_defined_vars());

foreach ($var_names mint $var_name )
{
$defined_vars [ $var_name ] =& $ $var_name ;
}

?>

1 évvel ezelőtt

Korábban írtam itt arról, hogy "ez" a get_defined_vars-ban van.

Kiderült, hogy nincs mindig ott, de bizonyos esetekben megmagyarázhatatlanul megjelenik.

Php -r"
osztály teszt(
nyilvános függvény a() (var_dump(array_keys(get_defined_vars()));$a = 123;)
public function b() (var_dump(array_keys(get_defined_vars()));$this;)
}
$t = new Teszt();
$t->a();
$t->b();
"

sor()
array("ez")

Ez nem történik meg a PHP 7.2-ben, de megtörténik a PHP 5.6-ban.

1 évvel ezelőtt

Néhány megjegyzés rámutat arra, hogy ez a függvény nem ad vissza hivatkozásokat. Azonban neveket ad vissza, és a nevek "hivatkozások".

Nem ajánlom az itt található javaslatokat, amelyek hivatkozásokká konvertálják.

nyilvános függvény x($a, $b, $c) (
foreach(array_keys(get_defined_vars()) $kulcsként)
if($kulcs !== "ez")
$this->y($($kulcs));
}

Nyilvános függvény y(&$input) (
$bemenet++;
}

A $() helyett használhatja a $$-t is.

Csináltam néhány fura dolgot az időmben, hogy rendkívül általános kódot készítsek, de soha nem kellett a fentihez hasonlót csinálnom. Lehet, hogy nem is működik (de kellene, mert nem különbözik az $a[$key]-től).

Azt is megteheti, hogy $$key++, de még soha nem láttam olyan kódot, ami nem volt borzasztóan rossz (dinamikus használata, ahol a dinamika nem előnyös).

Ha valami ilyesmit csinál, akkor vizsgálja meg jobban.

A Windows környezeti változói (környezet) különféle információkat tartalmaznak a rendszerbeállításokról és a felhasználó környezetéről. Különbséget teszünk felhasználói, rendszer- és folyamatkörnyezeti változók között.

A környezeti változók tartalmát a Windows rendszerben a legegyszerűbben úgy tekintheti meg, ha megnyitja a rendszertulajdonságokat ( sysdm.cpl) -> Speciális -> Környezeti változók. Amint látható, a megnyílt szekcióban két rész található: a felső a felhasználó környezeti változóit tartalmazza, az alsó pedig a rendszerváltozókat.

Ezenkívül a környezeti változókat a rendszerleíró adatbázis tárolja. A felhasználói változókat a . Szisztémás - be HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

Az összes környezeti változó értékét megjelenítheti a Windows parancssorában. A parancs egyszerű:

A parancs felsorolja a környezeti változókat és azok értékeit.

A PowerShellben az összes környezeti változó megjelenítéséhez a következő parancsot használhatja:

Ha csak egy változó értékét szeretné megjeleníteni, akkor az echo parancsot kell használnia, és a változó nevét százalékjelek közé kell tenni. Például,

echo %systemroot%

set > c:\tmp\env_var.txt

Egy adott folyamat környezeti változói a free segítségével szerezhetők be Process Explorer segédprogramok(a Sysinternalstól). Csak nyissa meg a folyamat tulajdonságait, és lépjen a lapra Környezet.

Biztos van otthon szekrényed vagy komódod. Használatuk elve egyszerű: olyan dolgokat teszünk oda, amelyekre most nincs szükségünk, de egy idő után szükség lehet rá.

A változók pontosan ugyanúgy vannak elrendezve. Értéket rakhatsz beléjük, és tárolhatod ott, amíg szükséged van rá.

Változók létrehozása

Egy ilyen változóba értéket adhatsz:

A fenti kódban létrehoztuk a $name változót és beleírtuk az Iván értéket, majd létrehoztuk az $age változót és hozzárendeltük a 20 értéket.

A "változó" név azt jelenti, hogy értéke változhat a szkript végrehajtása során:

Egyes nyelveken a változókat először „deklarálni kell” használat előtt. A PHP-ben nincs deklaráció – a változó abban a pillanatban jön létre, amikor értéket adsz bele.
A PHP programozók azonban gyakran azt mondják, hogy „változót deklarál” a „változó létrehozása” helyett.

Ezenkívül az "értéket adjon a változóba" helyett gyakran azt mondják, hogy "értéket rendel".
Az ok egyszerű - az = szimbólumot, amelynek köszönhetően egy változóban tároljuk az értéket, "hozzárendelési operátornak" nevezzük. Innen ered a "hozzárendelés" kifejezés.

A változók elnevezési konvenciói

1. A változó neve $ szimbólummal kezdődik.

2. A második karakter lehet betű vagy aláhúzás _

A változónevek megkülönböztetik a kis- és nagybetűket. A $name és a $Name különböző változók.

Változó értékének megjelenítése a képernyőn

Egy változót a már általunk ismert echo paranccsal jeleníthet meg:

Az echo parancs lehetővé teszi több érték megjelenítését egyszerre:

Vegye figyelembe, hogy 2 értéket adtunk át a visszhangnak, vesszővel elválasztva őket. Így annyi értéket adhatunk át, amennyit csak akarunk. A következő két példa ugyanazt az eredményt adja:

A PHP-ben is van egy rövidített szintaxis a változók kimenetére. Ahelyett

A PHP 5.4 előtt a gyorsírási szintaxis csak akkor működött, ha a short_open_tag direktíva engedélyezve volt a PHP beállításaiban, amely lehetővé teszi a rövidített nyitócímke használatát is

Változó értékének ellenőrzése

Az echo parancs nem mindig alkalmas egy változó aktuális értékének ellenőrzésére. Például, ha egy üres "" karakterláncot próbál megjeleníteni, akkor semmi sem fog megjelenni a képernyőn. És nem világos, hogy mi az oka - üres változóban vagy nem működő kódban.

Ezért a var_dump() függvény egy változó értékének ellenőrzésére szolgál:

A szkript végrehajtásának eredménye:

String(5) "Vasya" string(0) ""

Mint látható, a PHP nem csak a változó tartalmát adja ki, hanem a karakterek számát, sőt a változó típusát (string) is. A következő leckékben részletesen megvizsgáljuk az adattípusokat.

Változók eltávolítása

Egy meglévő változót az unset() függvénnyel távolíthat el:

És most itt az ideje gyakorolni egy kicsit.

Ne feledje, szinte minden PHP-probléma több megoldást is tartalmazhat. Ezért, ha az Ön döntései eltérnek az ezen az oldalon leírtaktól, ez egyáltalán nem jelenti azt, hogy valamit rosszul csinált.

Írj egy szkriptet, amely:
1. Cím és tartalom nevű változókat és néhány értéket hoz létre.
2. Megjeleníti a cím változó értékét a h1 címkén belül, és a tartalom változó értékét a div címkén belül.

Megoldás megjelenítése

", $title, ""; visszhang"

", $tartalom, "
"; ?>

Szeretném még egyszer felhívni a figyelmet arra, hogy nem ez a döntés az egyetlen helyes. Például a következő kód ugyanazt az eredményt adja:

Ebben a leckében a hatókört vizsgáljuk meg. PHP változók. Elmagyarázza a különbséget a lokális és a globális hatókör között, bemutatja, hogyan lehet hozzáférni a függvényen belüli globális változókhoz, hogyan kell dolgozni szuperglobálisokkal és statikus változókat létrehozni.

Amikor elkezded PHP tanulásés elkezd dolgozni a függvényekkel és objektumokkal, a változók hatóköre némi zavart okoz. Szerencsére a PHP szabályai ebben a vonatkozásban nagyon könnyen érthetők (más programozási nyelvekhez képest).

Mi az a terjedelem?

A változó hatóköre az a kontextus, amelyben a változót meghatározták, és ahol elérhető. A PHP-nek két változó hatóköre van:

  • Globális- a változók bárhol elérhetők a szkriptben
  • Helyi- a változók csak azon a függvényen belül érhetők el, amelyben meghatározásra kerültek

A változó hatókör, és különösen a helyi hatókör nagyban leegyszerűsíti a kódkezelést. Ha minden változó globális lenne, akkor a szkriptben bárhol módosíthatók. Ez káoszhoz és nagy szkriptekhez vezetne, mivel a szkript különböző részei nagyon gyakran használnak azonos nevű változókat. Ha a hatókört a helyi környezetre korlátozza, meghatározhatja a változóhoz hozzáférő kód határait, ami robusztusabbá, modulárisabbá és könnyebben hibakereshetőbbé teszi a kódot.

Változók globális hatókör a hatóköröket globálisnak, a helyi hatókörrel rendelkezőket pedig lokálisnak nevezzük.

Íme egy példa a globális és lokális változók működésére.

"; ) sayHello(); echo "Érték \$globalName: "$globalName"
"; echo "Érték \$localName: "$localName"
"; ?>

Szia Harry! $globalName értéke: "Zoya" $localName értéke: ""

Ebben a szkriptben két változót hoztunk létre:

  • $globalName- Ezt globális változó
  • $localName- Ezt helyi egy változó, amely a sayHello() függvényen belül jön létre.

A változó és a függvény létrehozása után a szkript meghívja a sayHello() -t, amely kiírja a "Hi Harry!" . A szkript ezután megpróbálja kiadni a két változó értékét az echo függvény segítségével. Íme, mi történik:

  • Mert $globalName a függvényen kívül jött létre, bárhol elérhető a szkriptben, így a "Zoya" jelenik meg.
  • $localName csak a sayHello() függvényen belül lesz elérhető. Mivel az echo kifejezés kívül esik a függvényen, a PHP nem engedélyezi a hozzáférést a helyi változóhoz. Ehelyett a PHP feltételezi, hogy a kód egy új változót hoz létre $localName néven, amely alapértelmezés szerint üres karakterlánc lesz. ezért a második echo hívás a $localName változó "" értékét adja ki.

Globális változók elérése egy függvényen belül

Globális változó eléréséhez funkción kívül csak írd a nevét. De egy globális változó eléréséhez egy függvényen belül, először globálisként kell deklarálnia a változót a függvényben a globális kulcsszó használatával:

Függvény myFunction() ( globális $globalVariable; // A $globalVariable globális változó elérése)

Ha nem, akkor a PHP feltételezi, hogy Ön helyi változót hoz létre vagy használ.

Íme egy példaszkript, amely globális változót használ egy függvényen belül:

"; globális $globalName; echo "Hello $globalName!
"; ) Hello(); ?>

Végrehajtáskor a szkript a következőt adja ki:

Szia Harry! Szia Zoya!

A sayHello() függvény használja kulcsszó global, hogy a $globalName változót globálisnak nyilvánítsa. Ezután hozzáférhet a változóhoz, és kiadhatja annak értékét ("Zoya").

Mik azok a szuperglobálisok?

A PHP speciális előre meghatározott készlettel rendelkezik globális tömbök amelyek különféle információkat tartalmaznak. Az ilyen tömböket ún szuperglobálisok, mivel bárhonnan elérhetők a szkriptben, beleértve a belső függvényteret is, és nem kell őket a globális kulcsszó használatával meghatározni.

Íme a PHP 5.3-as verziójában elérhető szuperglobalok listája:

  • $GLOBALS – a szkriptben lévő összes globális változó listája (a szuperglobálisok kivételével)
  • $_GET - tartalmazza a böngésző által GET kéréssel elküldött összes űrlapmező listáját
  • $_POST - tartalmazza a böngésző által POST kéréssel elküldött összes űrlapmező listáját
  • $_COOKIE - tartalmazza a böngésző által küldött összes cookie listáját
  • $_REQUEST - tartalmazza a $_GET, $_POST, $_COOKIE tömbök összes kulcs/érték kombinációját
  • $_FILES - tartalmazza a böngésző által letöltött összes fájl listáját
  • $_SESSION – lehetővé teszi az aktuális böngésző munkamenet-változóinak tárolását és használatát
  • $_SERVER - információkat tartalmaz a szerverről, például a végrehajtott szkript fájlnevét és a böngésző IP-címét.
  • $_ENV – A PHP-nek átadott környezeti változók listáját tartalmazza, például a CGI változókat.
Például a $_GET segítségével lekérheti a szkript kérési URL-karakterláncában található változók értékeit, és megjelenítheti azokat az oldalon:

Ha a fenti szkriptet a http://www.example.com/script.php?yourName=Fred URL-címmel futtatja, a következőt fogja kiadni:

Szia Fred!

Figyelem! Valódi szkriptben ezt az adatátvitelt soha nem szabad használni a gyenge biztonság miatt. Mindig ellenőrizze vagy szűrje az adatokat.

A $GLOBALS szuperglobal nagyon kényelmesen használható, mivel lehetővé teszi a globális változókhoz való hozzáférés megszervezését egy függvényben anélkül, hogy a globális kulcsszót kellene használni. Például:

"; ) sayHello(); // A "Hello Zoya!" ?> megjelenítése

Statikus változók: valahol a környéken vannak

Ha helyi változót hoz létre egy függvényen belül, az csak akkor létezik, amíg a függvény fut. Amikor a függvény leáll, a lokális változó eltűnik. A függvény ismételt meghívásakor egy új helyi változó jön létre.

A legtöbb esetben ez remekül működik. Így a függvények önellátóak, és mindig ugyanúgy működnek minden alkalommal, amikor meghívják őket.

Vannak azonban olyan helyzetek, amikor célszerű lenne létrehozni egy lokális változót, amely "emlékezik" az értékére a függvényhívások között. Az ilyen változókat statikusnak nevezzük.

Ha statikus változót szeretne létrehozni egy függvényben, akkor a statikus kulcsszót kell használnia a változó neve előtt, és mindenképpen kezdeti értéket kell adnia. Például:

Függvény myFunction() ( statikus $myVariable = 0; )

Vegyünk egy olyan helyzetet, amikor kényelmes statikus változót használni. Tegyük fel, hogy létrehoz egy függvényt, amely meghívásakor létrehoz egy widgetet, és kiírja a már létrehozott widgetek számát. Megpróbálhat ilyen kódot írni egy helyi változó használatával:


"; echo createWidget() . " már létrehoztuk.
"; echo createWidget() . " már létrehoztuk.>
"; ?>

De mivel a $numWidgets változó minden egyes függvényhíváskor létrejön, a következő eredményt kapjuk:

Létrehozunk néhány widgetet... 1-et már létrehoztunk. 1 már létrehoztuk. 1 már létrehoztuk.

De statikus változó használatával megtarthatjuk az értéket egyik függvényhívásról a másikra:

"; echo createWidget() . " már létrehoztuk.
"; echo createWidget() . " már létrehoztuk.
"; echo createWidget() . " >már létrehoztuk.
"; ?>

Most a szkript a várt eredményt hozza:

Létrehozunk néhány widgetet... 1-et már létrehoztunk. 2 már létrehoztuk. 3 már létrehoztunk.

Bár egy statikus változó megtartja értékét a függvényhívások között, csak a szkript futása közben érvényes. Amint a szkript befejezi a végrehajtást, az összes statikus változó, valamint a helyi és globális változók megsemmisülnek.

Ez minden! Gyakran olvassa el a PHP dokumentációját.

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: