PHP - Čarobne konstante


Šta su čarobne konstante?

U dijelu PHP konstante naučili smo kako definisati i koristiti konstante u PHP skripti. PHP osim toga pruža i skup posebnih predefinisanih konstanti koje se mijenjaju zavisno o tome gdje se koriste. Te se konstante nazivaju magičnim konstantama. Na primjer, vrijednost __LINE__ zavisi o liniji na kojoj se koristi u vašoj skripti. Magične konstante počinju s dve donje crte i završavaju s dve donje crte. Sljedeći dio opisuje neke od najkorisnijih čarobnih PHP konstanti.



__LINE__

Konstanta __LINE__ vraća trenutni broj reda datoteke, ovako:

<?php
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 2
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 3
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 4
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Konstanta LINE</title>
</head>
<body>

<?php
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 2
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 3
echo "Line number " . __LINE__ . "<br>"; // Prikazi: Linija broj 4
?>

</body>
</html>


__FILE__

Konstanta __FILE__ vraća punu putanju i ime PHP datoteke koja se izvršava. Ako se koristi unutar uključivanja, vraća se ime uključene datoteke.

<?php
// Prikazuje apsolutni put ove datoteke
echo "Puni put ove datoteke je: " . __FILE__;
?>


__DIR__

Konstanta __DIR__ vraća direktorij datoteke. Ako se koristi unutar uključivanja, vraća se direktorij uključene datoteke. Evo primjera:

<?php
// Prikazuje direktorij ove datoteke
echo "Direktorij ove datoteke je: " . __DIR__;
?>


__FUNCTION__

Konstanta __FUNCTION__ vraća ime trenutne funkcije.

<?php
function myFunction(){
    echo  "Naziv funkcije je - " . __FUNCTION__;
}
myFunction(); // Prikazi: Ime funkcije je - myFunction
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Konstanta FUNCTION</title>
</head>
<body>

<?php
function myFunction(){
    echo  "Naziv funkcije je - " . __FUNCTION__;
}
myFunction(); // Prikazi: Ime funkcije je - myFunction
?>

</body>
</html>


__CLASS__

Konstanta __CLASS__ vraća ime trenutne klase. Evo primjera:

<?php
class MyClass
{
    public function getClassName(){
        return __CLASS__;
    }
}
$obj = new MyClass();
echo $obj->getClassName(); // Prikaži: MyClass
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Konstanta CLASS</title>
</head>
<body>

<?php
class MyClass
{
    public function getClassName(){
        return __CLASS__;
    }
}
$obj = new MyClass();
echo $obj->getClassName(); // Prikaži: MyClass
?>

</body>
</html>


__METHOD__

Konstanta __METHOD__ vraća ime trenutne metode klase.

<?php
class Sample
{
    public function myMethod(){
        echo __METHOD__;
    }
}
$obj = new Sample();
$obj->myMethod(); // Prikaži: Sample::myMethod
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Konstanta METHOD</title>
</head>
<body>

<?php
class Sample
{
    public function myMethod(){
        echo __METHOD__;
    }
}
$obj = new Sample();
$obj->myMethod(); // Prikaži: Sample::myMethod
?>

</body>
</html>


__NAMESPACE__

Konstanta __NAMESPACE__ vraća ime trenutnog prostora imena.

<?php
namespace MyNamespace;
class MyClass
{
    public function getNamespace(){
        return __NAMESPACE__;
    }
}
$obj = new MyClass();
echo $obj->getNamespace(); // Prikaži: MyNamespace
?>