az internet ablakok Android

PHP globális állandók. Állandók PHP-ben.

(PHP 5\u003e \u003d 5.3.0, PHP 7)

Ez a kérdések listája két részre oszlik: általános kérdések és a végrehajtás egyes jellemzői, amelyek hasznosak a teljesebb megértés érdekében.

Először is, általános kérdések.

  1. Ha nem használok névtereket, akkor ennek bármelyike \u200b\u200bfontosnak tekinthető?
  2. Hogyan használhatok belső vagy globális osztályokat a névtérben?
  3. Hogyan használhatom az osztályokat névtérben vagy a saját névtérben lévő állandókban?
  4. Mint például \\ Nevem vagy Nevet. átalakították?
  5. Mint egy név, mint a nevem. átalakították?
  6. Hogyan működik az osztály hiányos neve név. átalakították?
  7. Mint egy függvény vagy hiányos nevének hiányos neve, mint például név. átalakították?

Néhány részlet a névterületek megvalósításáról, amelyek hasznosak lehetnek.

  1. Az importált nevek nem ütközhetnek össze az azonos fájlban meghatározott osztályokkal.
  2. Sem a funkciók, sem a konstansok nem deportálhatók az üzemeltető segítségével használat.
  3. A dinamikus névtérnevek (idézőjelek) meg kell védenie a konferencia szimbólumot.
  4. A fordított slash használatával nem definiált állandókra hivatkozhat, lehetetlen. Végzetes hiba jelenik meg
  5. Nem lehet felülírni a speciális konstansokat, például a , igaz, hamis, zend_thread_safe vagy zend_debug_build

Ha nem használok névtereket, akkor ennek bármelyike \u200b\u200bfontosnak tekinthető?

Nem. A névterek nem befolyásolják semmilyen meglévő kódot bármilyen formában vagy bármely írásbeli kódban, amely nem tartalmaz névtereket. Ha szeretné, írhatsz ilyen kódot:

1. példa A névtéren kívüli globális osztályokhoz való hozzáférés

$ a \u003d új \\ stdclass;
?>

Ez funkcionálisan megegyezik a következőkkel:

Példa # 2 hozzáférés a globális osztályokhoz a névtéren kívül

$ a \u003d új stdclass;
?>

Hogyan használhatok belső vagy globális osztályokat a névtérben?

3. példa A belső osztályokhoz való hozzáférés a névterekben

névtér foo;
$ a \u003d új \\ stdclass;

funkció teszt (\\ Arrayobject $ típusHintexample \u003d NULL) ()

$ a \u003d \\ fileiterator :: current_as_fileinfo;

// belső vagy globális osztály bővítése
a Class MyException kiterjeszti a kivételt ()
?>

Hogyan használhatom az osztályok funkciókat a névterekben vagy állandókban saját névtérben?

4. példa A belső osztályokhoz, funkciókhoz vagy konstansokhoz való hozzáférés a névterekben

névtér foo;

osztály myclass ()

// Osztály használata az aktuális névtérből
funkcióvizsgálat (MyClass $ típusHintexample \u003d null) ()
// egy másik módja annak, hogy egy osztályt használjon az aktuális névtérből
funkciós teszt (\\ foo \\ myclass $ típushintexample \u003d null) ()

// az osztály kiterjesztése az aktuális névtérből
az osztály kiterjesztése kiterjeszti a myclass ()

// hozzáférés a globális funkcióhoz
$ a \u003d \\\\ globalfunc ();

// hozzáférés a globális állandóhoz
$ b \u003d \\ ini_all;
?>

Mint például \\ Nevem vagy Nevet. átalakították?

Nevek, amelyek elkezdik \ Mindig konvertálja, hogyan néz ki, vagyis \\ Nevem - valóban nevem., I. Kivétel - ez Kivétel.

# 5 Abszolút nevek

névtér foo;
$ A \u003d Új \\ Name (); // létrehoz egy példányt az "Saját név" osztályról
echo \\ strlen ("hi"); // okozza a "stresen" funkciót
$ a \u003d \\ ini_all; // $ A változó hozzárendeli az "ini_all" állandó értékét
?>

Mint egy név, mint a nevem. átalakították?

Az ellentétes slash-t tartalmazó nevek, de ne kezdődjenek vele, mint például nevem.

aZ ÉN. egy másik név, majd ezt a szinonimát alkalmazzák aZ ÉN. ban ben nevem..

nevem..

# 6 példa teljes nevek

névtér foo;
használja Blah \\ Blahot mint foo;

$ A \u003d Új a nevem (); // létrehoz egy példányt az osztály "Foo \\ Name"
fOO \\ BAR :: NAME (); // okozza a "NAME" statikus módszert az "BLAH \\ BLAH \\ BAR" osztályban
a bar (); // okozza a "Foo \\ Bar" funkciót
$ a \u003d a \\ bár; // hozzárendel egy változó $ a jelentése állandó "foo \\ bár"
?>

Hogyan működik az osztály hiányos neve név. átalakították?

Osztálynevek, amelyek nem tartalmaznak fordított slash, például név. Két különböző módon alakítható át.

Ha egy importáló kifejezés jelen van, amely szinonimát hoz létre név. Egy másik név, majd ezt a szinonimát használják.

Ellenkező esetben a névtér jelenlegi neve lesz az előtag nevem..

Példa # 7 hiányos osztálynevek

névtér foo;
használja Blah \\ Blahot mint foo;

$ A \u003d Új név (); // létrehozza az "Foo \\ Name" osztály példáját
foo :: Name (); // okozza a "NAME" statikus módszert az "BLAH \\ BLAH" osztályban
?>

Mint egy függvény vagy hiányos nevének hiányos neve, mint például név. átalakították?

Olyan nevek vagy állandók, amelyek nem tartalmaznak fordított hülye, például név. Két különböző módon alakítható át.

Először is, a névtér jelenlegi neve előtag lesz név..

Ezután, ha állandó vagy funkció név. Nem létezik az aktuális névtérben, globális állandó vagy funkciót használnak név.Ha létezik.

Példa 8 A funkciók vagy állandók hiányos nevei

névtér foo;
használja Blah \\ Blahot mint foo;

cONST FOO \u003d 1;

funkcióm () ()
funkció Foo () ()
funkció rendezés (& $ a)
{
Sor ($ a); // a "sort" globális funkciót okozza
$ a \u003d array_flip ($ a);
Vissza $ a;
}

Az én (); // okozza a "foo my" -t
$ A \u003d Strlen ("Hi"); // a globális "stresen" funkciót okozza, mert a "foo \\ strlen" nem létezik
$ arr \u003d tömb (1, 3, 2);
$ b \u003d rendezés ($ ARR); // hívja a "Foo \\ sort" funkciót
$ C \u003d foo (); // a "Foo \\ foo" funkciót okozza - az import nem alkalmazható

$ a \u003d foo; // hozzárendel egy változó $ a jelentése állandó "foo \\ foo" - az import nem alkalmazható
$ b \u003d ini_all; // hozzárendel egy változó $ b értékét a globális konstans "ini_all"
?>

Az importált nevek nem ütközhetnek össze az azonos fájlban meghatározott osztályokkal.

A következő szkriptek kombinációi megengedettek:

névtéreimet;
osztály myclass ()
?>

névtér másik;
osztály dolog ()
?>

névtéreimet;
tartalmazza a "file1.php";
tartalmazza a "animother.php";


$ a \u003d új myclass; // létrehoz egy példányt az osztály "dolog" a névtér "egy másik"
?>

A név konfliktusa nem is annak ellenére, hogy az osztály Az osztályom. létezik a névtérben cuccomMivel a MyClass definíciója külön fájlban van. Azonban a következő példa végzetes hiba a név konfliktusával, mivel a MyClass osztály ugyanazon a fájlban van meghatározva, ahol a használati utasítás.

névtéreimet;
használjon egy másikat, mint a myclass;
osztály myclass () // végzetes hiba: MyClass konfliktus az import kifejezéssel
$ a \u003d új myclass;
?>

A beágyazott névterek elfogadhatatlanok.

A PHP nem engedélyezi a névterek csatolását egy másikba

névtér a \\ cuccom (
névtér beágyazva (
Osztályú foo ()
}
}
?>

Azonban, hogy szimulálja a cseledezett névterületeket, mint például:

névtére (
Osztályú foo ()
}
?>

PHP 5.6 sem a funkciók, sem a konstansok nem importálhatók az üzemeltető segítségével használat.

PHP 5.6 Egyetlen elemek, amelyek az üzemeltetői akció hatálya alá tartoznak használat - Ezek az osztályok nevei és nevei névterek. A konstansok vagy funkciók hosszú nevének csökkentése érdekében gátolja a tartalmát a névtérbe.

névtér bánya;
használjon ultra hosszú \\ ns nevet;

$ A \u003d NAME \\ CONSTANT;
név \\ func ();
?>

A PHP-vel kezdődően 5.6 Lehetővé vált a PSEdonyok importálására és létrehozására a funkciók és a konstansok nevét.

A dinamikus névtérnevek (idézőjelek) meg kell védenie a konferencia szimbólumot.

Nagyon fontos, hogy ezt ábrázolja, mert a fordított réteget árnyékoló karakterként használják a sorokban. Mindig meg kell ismételni a karakterlánc belsejében történő használatban, különben a véletlen következmények kockázata jelenik meg:

Példa 9 buktatók, ha névtérneveket használnak egy kettős idézetben

$ A \u003d "Veszélyes \\ Name"; // \\ n áttérés egy új sorba egy sorban kettős idézetekkel!
$ Obj \u003d új $ a;

$ A \u003d "NEM \\ t \\ t \\ t // és itt nincsenek problémák.
$ Obj \u003d új $ a;
?>

Az egy idézőjelben lévő vonalakon belül a hátlány, mint egy szeparátor biztonságosabb, de még mindig ajánlotta a fordított zuhanyszűrési gyakorlat minden sorban a legjobb megoldás.

A fordított slash használatával nem definiált állandókra hivatkozhat, lehetetlen. Végzetes hiba jelenik meg

Minden határozatlan állandó, ami hiányos név, mint Fúróarra a következtetésre jut, hogy a PHP azt javasolta, hogy Fúró Az állandó érték volt. Bármely állandó, teljes vagy abszolút névvel, amely a fordított réteg szimbólumot tartalmaz, végzetes hibához vezet, ha nem található.

# 10 bizonytalan konstansok

névtér bár;
$ a \u003d foo; // figyelmeztetést jelenít meg: meghatározatlan konstansok "foo" feltételezett "foo";
$ a \u003d \\ foo; // végzetes hiba: meghatározatlan névtér állandó foo
$ a \u003d bar \\ foo; // végzetes hiba: meghatározatlan névtér konstans bar \\ bar \\ foo
$ a \u003d \\ bar \\ foo; // végzetes hiba: meghatározatlan névtér konstans bar \\ foo
?>

Nem lehet felülírni a speciális konstansokat, például a , igaz, hamis, zend_thread_safe vagy zend_debug_build

Bármilyen kísérlet a névtér állandó meghatározására, amely egybeesik a speciális beépített konstansok nevével, végzetes hibához vezet.

# 11. példa bizonytalan konstansok

névtér bár;
const null \u003d 0; // Fatális hiba;
cONST TRUE \u003d "hülye"; // végzetes hiba;
// stb. stb.
?>

7 évvel ezelőtt.

Van egy módja annak, hogy meghatározzunk egy névterületes konstansot, amely egy speciális, beépített állandó, definiálási funkcióval és a harmadik paramétert a CASE_INSTIZTITIKÁCIÓK FALSE:

névtér foo;
definiálja (__Namespace__ "\\ null", 10); // meghatározza az állandó nullot az aktuális névtérben


?>

Nem kell megadnia a nevét a hívásban, hogy meghatározza (), mint ez történik általában
névtér foo;
definiálja (ini_all, "bar"); // előadást készít - a már definiált állandó ini_all. De:

Definiálja (__Namespace__. "\\ Ini_all", "bar"); // meghatározza az állandó ini_all az aktuális névtérben
var_dump (ini_all); // megjeleníti a karakterláncot (3) "bar" -t. Semmi sem nyitott. De:

Definiálja ("null", 10); // meghatározza az állandó null az aktuális névtérben ...
var_dump (null); // megmutatja a 10-et
var_dump (null); // null megjelenít
?>

Ha a Case_insensive paraméter igaz
névtér foo;
definiálja (__Namespace__. "\\ Null", 10, igaz); // előadást készít - állandó null már definiált
?>

3 évvel ezelőtt.

Az osztályok létrehozásakor vagy a statikus módszerek hívása a Namespace-ről a változók használatával, a teljes névtérre van szükség a megfelelő osztály használatához; Nem használhat alias vagy rövid nevet, még akkor is, ha ugyanazon névtérben hívják. Elhanyagolása ezt figyelembe veszi okozhat a kódot kell használni a rossz osztály, dobjon egy végzetes Hiányzó Class kivétel, vagy dobja Hibák és figyelmeztetések.

Ezekben az esetekben használhatja a Magic Constant __Namespace____, a teljes névtér és az osztály nevét közvetlenül. A funkció class_exists is szükség van a teljes névtér és osztály nevét, és fel lehet használni annak érdekében, hogy végzetes hiba Won „T dobni, mert hiányzik az osztályok.

Névtér foo;
osztálybár (
Nyilvános statikus funkcióvizsgálat () () () () (
Visszatérés get_called_class ();
}
}

névtér foo \\ foo;
osztálybár kiterjeszti \\ foo \\ bar (
}

Var_dump (bar :: teszt ()); // string (11) "foo \\ foo \\ bar"

$ Bar \u003d "foo \\ bar";
var_dump ($ bar :: teszt ()); // string (7) "foo \\ bar"

$ Bar \u003d __Namescace__. "\\ Rúd";
var_dump ($ bar :: teszt ()); // string (11) "foo \\ foo \\ bar"

$ Bar \u003d "bar";
var_dump ($ bar :: teszt ()); // végzetes hiba: "Bar" osztály nem található, vagy helytelen osztály \\ sáv

Minden egyes végrehajtható parancsfájl esetében. Ezeket a konstansokat különböző modulok határozzák meg, és csak akkor jelennek meg, ha ezek a modulok dinamikus terhelés vagy statikus szerelés eredményeként kaphatók.

Kilenc mágikus konstans van, amelyek megváltoztatják értéküket attól függően, hogy milyen kontextusban használják őket. Például az érték __Vonal__ A szkript sorától függ, amelyen ez az állandó megjelöl. Az összeállítás során minden mágikus konstans megengedett, ellentétben a végrehajtás során megengedett hagyományos konstansokkal. A speciális konstansok érzéketlenek a nyilvántartásra, és a listájuk alatt látható:

Néhány mágikus php konstans
Név Leírás
__Vonal__ Aktuális sorszám a fájlban.
__File__ Az aktuális fájl teljes elérési útja és neve a telepített Simlinks alkalmazással. Ha a plug-in fájl belsejében van, akkor a fájl nevét visszaküldi.
__Dir__ Fájlkönyvtár. Ha a plug-in fájl belsejében van, akkor a fájl könyvtárát visszaküldi. Ez egyenértékű a hívásnak dirname (__ fájl__). A könyvtár megtérülési neve nem ér véget a fekvőhelyen, kivéve a root könyvtárat.
__Funkció__ Funkció neve vagy (Bezárás) Abban az esetben, ha névtelen funkció.
__Osztály__ Osztály név. Ez a név tartalmazza a névtér nevét, amelyben az osztályt bejelentették (például, Foo \\ Bar.). Kérjük, vegye figyelembe, hogy a PHP 5.4 __Class__ kezdete szintén tulajdonságokban is működik. Ha a __class__ tulajdonságok módjait használják, az osztály neve, amelyben ezeket a módszereket használják.
__Jellemvonás__ A tulajdonság neve. Ez a név tartalmazza a névtér nevét, amelyben a tulajdonságot bejelentették (például, Foo \\ Bar.).
__Módszer__ Az osztály módszer neve.
__Namespace__ Az aktuális névtér neve.
Classname :: osztály Teljes osztálynév (jelezve a névtéret). Lásd még :: Osztály.

Lásd még get_class () , get_object_vars () , a fájl létezik () és function_exists () .

A változások listája

14 évvel ezelőtt.

A különbség.
__Function__ és __Method__, mint a PHP 5.0.4

A funkció csak a funkció nevét adja vissza

míg a __fethod__ visszaadja az osztály nevét a funkció nevével együtt

osztály trükk.
{
Funkció doit ()
{
echo __function__;
}
Doitagain funkció ()
{
Echo __fethod__;
}
}
$ Obj \u003d új trükk ();
$ Obj-\u003e doit ();
a kimenet ---- doit
$ Obj-\u003e doitagain ();
a kimenet ----- Trick :: Doitagain

13 évvel ezelőtt.

A __Class__ mágikus állandó szépen megoldja a GET_CLASS () funkciót.

Néha tudnia kell mindkettőt:
- Az örökölt osztály neve
- A ténylegesen végrehajtott osztály neve

Itt van egy példa, amely megmutatja a lehetséges megoldást:

Osztály base_class.
{
Függvény mondani_a ()
{

" ;
}

Függvény mondani_b ()
{

" ;
}

az osztály derived_class kiterjeszti a base_class-ot
{
Függvény mondani_a ()
{
szülő :: Say_a ();
Echo "" "- mondta a". __Osztály__. "
" ;
}

Függvény mondani_b ()
{
szülő :: Say_b ();
Echo "B" - mondta a ". get_class ($ This). "
" ;
}
}

$ Obj_b \u003d új derived_class ();

$ Obj_b -\u003e Say_a ();
echo "
" ;
$ Obj_b -\u003e Say_B ();

?>

A kimeneti shld nagyjából így néz ki:

"A" - mondta a base_class
"A" - mondta a derived_class

"B" - mondta a derived_class
"B" - mondta a derived_class

3 évvel ezelőtt.

MEGJEGYZÉS Egy kis következetlenséget a __class__ és __fethod__ tulajdonságokban (Stand PHP 7.0.4): míg a __class__ a hirdetett és a visszatérés dinamikusan működik, az osztály nevét használják, __Method__ Osztály név!

8 évvel ezelőtt.

Nincs mód arra, hogy visszafelé kompatibilis __dir__-ot hajtson végre az 5.3.0 előtt.

Az egyetlen dolog, amit tehetsz, hogy rekurzív keresést végezzen, és cserélje ki a DirName-t (__ fájl__):
megtalálja. -Type f -print0 | Xargs -0 sed -i "s / __ dir __ / dirname (__ fájl __) /"

5 évvel ezelőtt.

Sok megjegyzés itt van a __dir__ mágikus konstans meghatározására a PHP verziókhoz, amelyek nem támogatják a funkciót. Természetesen meghatározhatja ezt a mágikus konstansot a PHP-verziókhoz, amelyek még nem rendelkeznek ezzel az állandóval, de miután megvédi a célját, amint az a mellékelt fájl konstans használata, amely egy másik könyvtárban lehet, majd a __dir__ fájlt meghatározó fájl lehet. Állandó. Mint ilyen, az állandó elvesztette a * mágiáját *, és meglehetősen haszontalan lenne, hacsak nem biztos, hogy mindegyikük ugyanabban a könyvtárban van.

Célkövető: Eye Catchup a Gmail Dot Com-ban Megjegyzés arról, hogy nem tudja meghatározni a mágikus konstansokat, de kijelenti, hogy a __dir__ definiálása nem haszontalan, nem!

7 évvel ezelőtt.

Nem lehet ellenőrizni, hogy van-e mágikus konstans. Ez azt jelenti, hogy nincs pont az ellenőrzés, ha __dir__ definiálódik, akkor meghatározza azt. `Definiált (" __ dir __ ")" mindig hamis. A __dir__ meghatározása csendben nem sikerül a PHP 5.3+ -ben. Ez kompatibilitási problémákat okozhat, ha a szkript más szkripteket tartalmaz.

echo (definiált ("__dir__")? "__Dir__ definiált": "__dir__ nincs meghatározva." PHP_EOL);
echo (definiált ("__file__")? "__File__ definiálva": "__file__ nincs meghatározva." PHP_EOL);
echo (definiált ("php_version")? "PHP_VERSION definiált": "PHP_VERSION nincs meghatározva"). Php_eol;
echo "PHP verzió:". Php_version. Php_eol;
?>
Kimenet:
__Dir__ nincs meghatározva
__File__ nincs meghatározva
A PHP_VERSION definiált.
PHP verzió: 5.3.6

Vannak olyan esetek, amikor a változók meglehetősen kényelmetlenek ahhoz, hogy bármilyen konkrét értéket használjanak az állandó tároláshoz, amelyek a program során nem változnak. Ezek az értékek lehetnek matematikai konstansok, fájlok, különböző jelszavak stb. Ezen célokra a PHP-ben olyan design van, mint.

Úgynevezett olyan név, amely nem változik a program végrehajtása során (Script).

Az RNR-állandókban a funkció határozza meg definiálja () . Ez a funkció a következő formátumú:

meghatároz ($ Név., $ érték, $ Case_sen.), Hol:

$ Név. - az állandó neve;
$ érték - érték állandó;
$ Case_sen. - a logikai típus opcionális paramétere,
Jelzi, hogy figyelembe kell venni a betűk (igaz) vagy sem (hamis) esetét.

Példa a PHP-állandók meghatározására és használatára:


echo pi;
// Megjeleníti a 3.14.
?>

Ha a paraméter $ Case_sen. Holló igaz.A tolmács figyelembe veszi a szimbólum-nyilvántartást, amikor az állandóval dolgozik. Felhívjuk figyelmét, hogy a konstansokat előző jel nélkül használják. $ .

A konstansok és változók közötti különbségek:

    Állandóan nincs konzol egy dollár jel formájában ( $ );

    A konstansok csak a funkció használatával definiálhatók definiálja () és nem hozzárendelési értéket;

    A konstansok meghatározhatók és elérhetőek bárhol, anélkül, hogy figyelembe vennék a hatályt;

    A konstansok nem határozhatók meg vagy törölhetők a kezdeti hirdetés után;

    A konstansok csak skalárértékekkel rendelkezhetnek.

A konstansok létezésének ellenőrzése

A konstans létezésének ellenőrzéséhez használhatja a funkciót meghatározott () . Ez a funkció visszatér igaz.Ha az állandóan kijelentkezik. Adunk egy példát:

// kijelenteni egy pi állandó
definiálja ("pi", 3.14, igaz);
ha (definiált ("pi") \u003d\u003d igaz) visszhang "Pi Constant bejelentett!";
// A parancsfájl megjelenik a "PI konstans bejelentése!"
?>

Előre definiált PHP-állandók

A következő előre definiált konstansok léteznek a PHP-ben:

A PHP nagy listát kínál az előre definiált konstansok számára minden egyes végrehajtható szkripthez. Sok ilyen állandót különböző modulok határozzák meg, és csak akkor jelennek meg, ha ezek a modulok dinamikus terhelés vagy a statikus szerelés eredményeként kaphatók.

Öt előre meghatározott konstans van, amelyek az értéküket attól függően, hogy milyen kontextust alkalmaznak. Például Constanta __Vonal__ A szkript sorától függ, amelyen ez az állandó megjelöl. A speciális konstansok érzéketlenek a nyilvántartásra, és a listájuk alatt látható:

Név Leírás
__Vonal__ Aktuális vonal a fájlban.
__File__ Az aktuális fájl teljes elérési útja és neve.
__Dir__ A fájl könyvtárát. Ha egy közé tartozik, a mellékelt fájl könyvtárát visszaadják. Ez egyenértékű a DirName-vel (__ fájl__). Ez a könyvtár neve nem rendelkezik hagyomány-slash, hacsak nem a gyökérkönyvtár.
__Funkció__ A funkció neve. (Hozzáadva a PHP 4.3.0.)
__Osztály__ Osztály név. (Hozzáadva a PHP 4.3.0.)
__Jellemvonás__ A tulajdonság neve. A TAIT NAME magában foglalja az általa kijelölt névteret (pl. Foo \\ Bar).
__Módszer__ Az osztály módszer neve. (Hozzáadva a PHP 5.0.0-hez)
__Namespace__ Az aktuális névtér neve.

Emellett

Utolsó frissítés: 1.11.2015

Állandók, valamint változó tárolja a konkrét értéket, csak ellentétben változók értéke állandó lehet telepíteni csak egyszer, és akkor már nem változtathatja meg. Például egy numerikus konstansot határozunk meg:

Ahhoz, hogy meghatározzuk az állandó, a Define operátor használata, mely az alábbi formában: Adjuk (String $ Név, string $ érték, BOOL $ CASE_SEN \u003d FALSE). A névparaméter továbbítja az állandó nevét, és a $ érték paraméter az értéke. A harmadik opcionális paraméter megkapja a logikai értéket igaz vagy hamis. Ha az érték FALSE, akkor az állandó használatakor figyelembe veszik, ha igaz, ha igaz - a nyilvántartást nem veszik figyelembe. A mi esetünkben a harmadik paramétert nem használják, így az alapértelmezés szerint megegyezik.

Az állandó meghatározása után használhatjuk, valamint a szokásos változót. Az egyetlen kivétel - nem fogjuk megváltoztatni a jelentését. A változó másik különbsége nem használja a $ jelet. Ez az, hogy a kifejezés száma szám \u003d 33; Ez nem fog működni.

Előre meghatározott konstansok

A programozó által létrehozott programozó mellett több beépített konstans van a PHP-ben:

    File__: tárolja az aktuális fájl teljes elérési útját és nevét

    Line__: tárolja az aktuális vonalszámot, amely tolmácsolási folyamatok

    DIR__: tárolja az aktuális fájlkönyvtárat

    Funkció__: A feldolgozott funkció neve

    Class__: Az aktuális osztály neve

    Módszer: A feldolgozott módszer neve

    Namespace__: Az aktuális névtér neve

Például húzza ki az aktuális futtatható karakterláncot és fájlnevet:

A Constanta létezésének ellenőrzése

Annak ellenőrzésére, hogy a konstansok definiálhatók-e, használhatjuk-e a Bool (String $ név) funkciót. Ha a $ névállandó, akkor a funkció visszatér az igazhoz