Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Magiczne stałe

czwartek,

Magiczne stałe

Niektóre elementy dostępne w języku PHP zostały przez autorów nazwane magicznymi. Wśród nich znalazły się także magiczne stałe (magic constants). Tak naprawdę nie są one stałymi, a ich wartość zależy od miejsca, w którym zostaną użyte, np. magiczna stała LINE to numer wiersza pliku gdzie nastąpiło jej wywołanie.

Nazwa Opis
__LINE__Aktualna linia pliku.
__FILE__Pełna scieżka i nazwa pliku. Jeśli plik został dołączony, zwracana jest jego nazwa.
__DIR__Nazwa katalogu pliku. Jeśli plik został dołączony, zwracany jest jego katalog.
__FUNCTION__Zwraca nazwę funkcji.
__CLASS__Zwraca nazwę klasy.
__TRAIT__Nazwa cechy, obejmuje przestrzeń nazw, w której została zadeklarowana.
__METHOD__Zwraca nazwę metody.
__NAMESPACE__Nazwa bieżącej przestrzeni nazw. Ta stała definiowana jest w czasie kompilacji.
ClassName::classW pełni kwalifikowana nazwa klasy.

Prawdopodobnie stałe magiczne najczęściej stosowane są do debugowania i rejestrowania. Poniżej zamieszczono przykłady wywołań stałych magicznych.

Przykład nr 1

echo __LINE__;
echo __FILE__;
echo __DIR__;

Przykład nr 2

function hello($a) {
  echo "Hello $a ";
  echo __FUNCTION__;
}
hello('CKZiU'); // Hello CKZiU hello

Przykład nr 3

class Test
{
  function fname()
  {
    echo __FUNCTION__;
  }
  function mname()
  {
    echo __METHOD__;
  }
  function cname()
  {
    echo __CLASS__;
  }
}
$obj = new Test();
$obj->cname(); // Test
$obj->fname(); // fname
$obj->mname(); // Test::mname

Przykład nr 4

trait tTest {
  function traitName()
  {
  	echo __TRAIT__;
  }
}

class Test {
  use tTest;
}

$obj = new Test;
$obj->traitName(); // tTest

Przykład nr 5

namespace CKZIU\Dydaktyka\Example;

class Test {
  static function hello() 
  {
    echo 'Helo ' . __NAMESPACE__;
  }
}

Test::hello(); // Helo CKZIU\Dydaktyka\Example

Przykład nr 6

namespace CKZIU\Dydaktyka\Example;

class test
{
 function nic() {}
}

echo test::class; // CKZIU\Dydaktyka\Example\test
Artykuł: Konkurs z Języka Angielskiego Zawodowego

Konkurs z Języka Angielskiego Zawodowego

Artykuł: Testujemy kontroler ARGB

Testujemy kontroler ARGB

Artykuł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Artykuł: Przeglądarka Vivaldi

Przeglądarka Vivaldi

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły