PHP - Hogy tudok osztályon belül globális konstansot definiálni amit más osztály is elér?
#1 vagyok
A define() globális konstanst definiál, kiegészítettem a példám a 2. linken.
Objektum Orientált Programozásban csak úgy globális dolgot nem definiálunk.
Ez igaz C++, Java, PHP, stb...
PHP-ban van egy speciális parancs (ahogy minden máshol is) ami konstans marad (azaz értéke nem módosítható, de kiviűrről látható.
PHP-ban főleg a $GLOBALS-t módosítani lehet, de KIMONDOTTAN VESZÉLYES. Minden "$" definiált változó nem más mint a $GLOBALS tömb egy eleme. De ezt ő maga a PHP motor kezeli, de számodra is elérhető.
Szóval $GLOBALS-ot SOHA SE HASZNÁLD!!!
Bár a tmp (ideiglenes) adatoknak a $_ENV (Environment) használható, de felhasználás után illik törölni.
De mindezek helyet:
Megj: ~ jel csak szóköz szeretne lenni, a láthatóságok miatt.
1. lehetőség: define("name", value)
De előtte célszerű megnézni, hogy létezik-e a defined("name") parancsal.
if(defined("GLOBAL_VAR_NAME")) {
~~~~define("GLOBAL_VAR_NAME", <VALUE>);
}
2. lehetőség: Ezt OOP-hez ERŐSEN ajánlot
Írok egy példa class-t:
class A {
~~~~/**
~~~~~* Ez megfelel a Java: "public static final" paraméterezésnek.
~~~~~*/
~~~~const $NAME = 1;
}
Elérése pedig:
A::NAME
Részletek: [link]
Hibás sor: const $NAME = 1;
Javítása: const NAME = 1;
Nincs "$" karakter
@22:59: Nem feltetlenul, ez csak osztaly szintu valtozot definial a kerdesben pedig konstans volt. :)
Arra ott a const, amit mar emlitettek es szinten elehero az Osztalynev::konstans modon.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!