Home > Programowanie > Magiczne stałe PHP

Magiczne stałe PHP

Stałe noszące miano „magicznych” w języku PHP to zbiór stałych które posiadają przedefiniowaną i niezmienną wartość, jednak jest ona określona jedynie w obrębie wykonywania danego skryptu.

Oznacza to że w przypadku innego pliku wartości poszczególnych stałych będą inne. Mało tego, niektóre z nich mogą zmieniać swą zawartość w zależności od miejsca wywołania (np.: wew. funkcji czy metody klasy).

Owe „magic constans” są jednak bardzo przydatne w programowaniu w PHP i każdy powinien je znać, aby niepotrzebnie nie wynajdywać od nowa przysłowiowego koła. Zapraszam do zapoznania się z nimi.

Dla każdej poniższej stałej, został dołączony przykład użycia wraz z wynikiem wykonania danego kodu.

__LINE__

Zawiera numer linii pliku skryptu, w której została użyta ta stała.

echo __LINE__;
2

__FILE__

Przechowuje bezwzględną ścieżkę do pliku skryptu który jest wykonywany.

echo __FILE__;
G:\Server\www\~dev\magicconstants.php

__DIR__

Przechowuje bezwzględną ścieżkę do folderu skryptu który jest wykonywany (bez slasha na końcu jeśli nie jest to folder główny – root). Stała ta dostępna jest począwszy od wersji PHP 5.3.0.

echo __DIR__;
G:\Server\www\~dev

__FUNCTION__

Nazwa funkcji w której użyta została stała.

function test_function()
{
  return __FUNCTION__;
}
echo test_function();
test_function

__CLASS__, __METHOD__

Pierwsza z stałym zwraca nazwę klasy obiektu w którym została użyta. Druga natomiast, dodaje do tego ciągu dodatkowo nazwę wywołanej metody owej klasy.

class test_obj
{
  public function test_class()
  {
    return __CLASS__;
  }
  public function test_method()
  {
    return __METHOD__;
  }
}
$test_obj = new test_obj();
echo $test_obj->test_class()."\n";
echo $test_obj->test_method();
test_obj
test_obj::test_method

__NAMESPACE__

Nazwa aktualnej przestrzeni nazw – jednej z głównej nowości w PHP 5.3.0.

namespace test_namespace;
echo __NAMESPACE__;
test_namespace
Kategorie:Programowanie Tagi:, , ,
  1. Brak komentarzy
  1. Brak jeszcze trackbacków