NetHq Blog


A rossz legjobb kritikája az, ha megmutatjuk, hogyan kell jobban csinálni.

PHP állandók és változók

Nightvis, 2012.05.04 02:28
A legtöbb programozási nyelvben, így a php-ban is, az adatokat különböző változókban, illetve állandókban szokás tárolni. A változó típusa a benne tárolt adatéra ural. A PHP-ban többféle adattípus használható. A különböző adatokat különböző adattípusokban tárolhatjuk. Érdemes megemlíteni, hogy a php egy gyengén típusos nyelv, így a változók deklarálásakor nem szükséges a tipus meghatározása, mint említettem a változó tartalma szabja meg annak típusát. Az adattípusokat természetesen meg tudjuk változtatni.

A legtöbb programozási nyelvben, így a php-ban is, az adatokat különböző változókban, illetve állandókban szokás tárolni. A változó típusa a benne tárolt adatéra ural. A PHP-ban többféle adattípus használható. A különböző adatokat különböző adattípusokban tárolhatjuk. Érdemes megemlíteni, hogy a php egy gyengén típusos nyelv, így a változók deklarálásakor nem szükséges a tipus meghatározása, mint említettem a változó tartalma szabja meg annak típusát. Az adattípusokat természetesen meg tudjuk változtatni.

A PHP adattípusai A PHP a következő alapadattípusokat támogatja:

  • Integer - egész szám
  • Float (másnéven double)- valós (lebegőpontos) szám
  • String - karakterek sorozata, karakterlánc
  • Boolean- true (igaz) vagy false (hamis) értéket felvehető logikai változó
  • Array - tömb, több adatelem tárolására használható változó
  • Object - objektum, osztálypéldányok tárolására használt változó

 

Két különleges adattípus is használható: NULL és resource. A kezdőérték nélküli vagy NULL értékű változók NULL típusúak.Egyes beépített függvények (például az adatbázisfüggvények) resource típusú változókat adnak vissza. Ezek külső erőforrásra (például adatbázis-kapcsolatokra) hivatkoznak. Közvetlenül valószínűleg soha nem fogunk resource változót módosítani, ám egyes függvények ezeket adják vissza, és paraméterként gyakran más függvénynek kell átadnunk ezeket.

Típuserősség foka

A PHP-t gyengén típusos, másképpen fogalmazva dinamikusan típusos nyelvnek nevezzük. A változók a legtöbb programozási nyelvben csak egyféle típusú adatot tartalmazhatnak, és ezt a típust a változó használata előtt deklarálni kell (például C-ben). PHP-ben viszont a változónak adott érték határozza meg a változó típusát. Például az $num és a $num_all változót létrehozzuk az alábbi kezdőértékkel: Snum = O; $num_all = 0.00; Mivel a O-t, azaz egész számot rendeltünk az $num-hoz, ez most egy integer típusú változó. A $num_all pedig ugyanilyen logika miatt float típusú. $string = 'Ez egy string'; A $string változó ekkor string típusú lenne. A PHP a változóban tárolt érték típusa alapján változtatja a változó típusát. A típusok menetközben, átlátható módon történő módosításának lehetősége igen hasznos. Ne feledjük, hogy a PHP varázsütésre tudja, hogy milyen adattípust tárolrunk el a változókbal Amikor visszakeressük a változót, ugyanolyan adattípusú adattal tér vissza.

Típuskényszerítés

Típuskényszerítéssel (type casting) elérhetjük, hogy egy változó vagy érték más típusúként viselkedjen. Két lehetőség van egy változó típusának módosítására. (int)$var; -> Egyszerűen zárójelben az átalakítani kívánt változó elé írjuk az ideiglenes típust. settype($var, "integer"); -> A settype függvény segítségével átalakítjuk a változó tartalmát. A változók típusát könnyen megtudhatjuk. A PHP erre a célra is biztosít nekünk egy függvényt. A gettype() függvény, visszatérési értéke a változó tartalmának adattípusa. gettype($var);

Állandók deklarálása és használata

Ahogy korábban már láttuk, könnyedén megváltoztathatjuk a változókban tárolt értéket. Ugyanilyen egyszerűen deklarálharunk állandókat (konstansokat). Az állandók ugyanúgy értéket tárolnak, mint a változók, ám értéküket egyszer állítjuk be, és a kódban sehol máshol nem lehet azokat megváltoztatni. A konstansokat a define függvénnyel állíthatjuk be: define ( 'EXAMPLE_INT' , lOO) ; define ( 'EXAMPLE_STRING', 'Ez egy string'); Vegyük észre, hogy az állandók nevét nagybetűvel írtuk! Ez a C-ből átvett szokás egyszerűen, ránézésre megkülönböztethetőek a változók és az állandók. Nem kötelező, mégis érdemes ragaszkodni ehhez, mivel könnyebben olvashatóvá és áttekinthetővé teszi kódunkat. Az állandók és a változók között egy fontos különbség, hogy amikor állandóra hivatkozunk, nem kell dollárjelet rakni elé. Ha szükségünk van az állandó értékére, csak a nevét kell használnunk. Ha például az imént létrehozott konstansok közül az elsőt szereménk használni, a következöket gépelnénk be: echo EXAMPLE_INT; A PHP az általunk meghatározott állandókan kívül számtalan saját (beépített) állandóval rendelkezik. Ezeket a legegyszerűbben úgy tekinthetjük át, ha lefuttatjuk a phpinfo ( ) függvényt: phpinfo(); A függvény -sok más hasznos információ mellett -a PHP előre definiált változóinak és állandóinak listáját adja vissza. A változók és állandók közötti másik különbség, hogy az utóbbiak csak boolean, integer, float és string típusú adatokat tárolhatnak. Ezeket az adattípusokat együttesen skaláris értékeknek nevezzük.

Változók hatóköre

A hatókör (scope) kifejezés a kód azon területeire utal, ahol az adott változó elérhető. A PHP-nek a hatókörre vonatkozó, hat alapvető szabály a következő:

  • A beépített szuperglobális változók a kódon belül bárhol elérhetők.
  • Deklarálásuk után az állandók globálisan elérhetők; ez azt jelenti, hogy a függvényeken belül és kívül is használhatók. (De függvényen belül csak akkor érhető el az adott globális változó, ha a global kulcsszóval deklaráljuk azt.)
  • A kódban deklarált globális változók a kódban bárhol elérhetők, csak a függvényeken belül nem.
  • A globálisként deklarált függvényekben lévő változók az ugyanolyan nevü globális változókra hivatkoznak.
  • A függvényekben bevezetett és static kulcsszóval deklarált változók a függvényeken kívülről nem érhetők el, ám a függvény két meghívása között megőrzik értéküket.
  • A függvényekben bevezetett változók az adott függvényre nézve helyiek, és a függvény végén megszünnek létezni.
  • A $_GET és a $_ POST tömb, illetve néhány különleges változó egyéni hatókörszabályokkal rendelkezik. Ezek szuperglobális vagy autoglobális változók, amelyek mindenhol, függvényeken belül és kívül is láthatók.

 

A szuperglobális változók teljes listája a következő:

  • $GLOBALS -az összes globális változót tartalmazó tömb (a global kulcsszóhoz hasonlóan ez is lehetövé teszi a globális változókhoz való, függvényen belüli hozzáférést-például így: $GLOBALS ['my_var'])
  • $_SERVER -a kiszolgáló által elérhetővé tett változók tömbje
  • $_GET -a kódnak GET metódussal átadott változók tömbje
  • $_POST -a kódnak POST metódussal átadott változók tömbje
  • $_COOKIE -böngészősütik változóinak tömbje
  • $_FILES -fájlfeltöltésekhez kapcsolódó változók tömbje
  • $_ENV -a környezeti változókat tartalmazó tömb
  • $_REQUEST -az összes felhasználói bevitele, köztük a $_ GET, $_POST és $_COOKIE változókat magában foglaló beviteli tartalmat tartalmazó tömb (amely a PHP 4.3.0 verziója óta a $_FILES változókat nem tartalmazza)
  • $_SESSION -munkamenet (session) -változók tömbje

Tartalom közösségi megosztása: