Home Blog Magic Constant in PhP

Magic Constant in PhP

0
Magic Constant in PhP

Magic constants are the predefined constants in PHP which get changed on the basis of their use. They start with the double underscore (__) and ends with the double underscore.

They are similar to other predefined constants but as they change their values with the context, they are called magic constants.

There are eight magical constants. They are case-insensitive.

  • __LINE__: Represents current line number where it is used.Represents current line number where it is used.
  • __FILE__: Represents full path and file name of the file. If it is used inside an include, a name of included file is returned.
  • __DIR__: Represents full directory path of the file. Equivalent to dirname(__file__). It does not have a trailing slash unless it is a root directory. It also resolves symbolic link.
  • __FUNCTION__: Represents the function name where it is used. If it is used outside of any function, then it will return blank.
  • __CLASS__: Represents the function name where it is used. If it is used outside of any function, then it will return blank.
  • __TRAIT__: Represents the trait name where it is used. If it is used outside of any function, then it will return blank. It includes namespace it was declared in.
  • __METHOD__: Represents the name of the class method where it is used. The method name is returned as it was declared.
  • __NAMESPACE__: Represents the name of the current namespace.
  • PHP_VERSION: The PHP version
  • PHP_INT_MAX: The PHP integer value limit

Example

<?php  
echo "<h3>Example for __LINE__</h3>";  
echo "You are at line number " . __LINE__ . "<br><br>";// print Your current line number i.e;3  
echo "<h3>Example for __FILE__</h3>";  
echo __FILE__ . "<br><br>";//print full path of file with .php extension  
echo "<h3>Example for __DIR__</h3>";  
echo __DIR__ . "<br><br>";//print full path of directory where script will be placed  
echo dirname(__FILE__) . "<br><br>"; //its output is equivalent to above one.  
echo "<h3>Example for __FUNCTION__</h3>";  
//Using magic constant inside function.  
function cash(){  
echo 'the function name is '. __FUNCTION__ . "<br><br>";//the function name is cash.  
}  
cash();  
//Using magic constant outside function gives the blank output.  
function test_function(){  
echo 'HELLO';  
}  
test_function();  
echo  __FUNCTION__ . "<br><br>";//gives the blank output.  
  
echo "<h3>Example for __CLASS__</h3>";  
class abc  
{  
public function __construct() {  
;  
}  
function abc_method(){  
echo __CLASS__ . "<br><br>";//print name of the class abc.  
}  
}  
$t = new abc;  
$t->abc_method();  
class first{  
function test_first(){  
echo __CLASS__;//will always print parent class which is first here.  
}  
}  
class second extends first  
{  
public function __construct() {  
;  
}  
}  
$t = new second;  
$t->test_first();  
echo "<h3>Example for __TRAIT__</h3>";  
trait created_trait{  
function abc(){  
echo __TRAIT__;//will print name of the trait created_trait  
}  
}  
class anew{  
use created_trait;  
}  
$a = new anew;  
$a->abc();  
echo "<h3>Example for __METHOD__</h3>";  
class meth{  
public function __construct() {  
echo __METHOD__ . "<br><br>";//print meth::__construct  
}  
public function meth_fun(){  
echo __METHOD__;//print meth::meth_fun  
}  
}  
$a = new meth;  
$a->meth_fun();  
  
echo "<h3>Example for __NAMESPACE__</h3>";  
class name{  
public function __construct() {  
echo 'This line will be printed on calling namespace';  
}  
}  
$clas_name= __NAMESPACE__ .'\name';  
$a = new $clas_name;  

echo "Current PHP Version you are using  : ".PHP_VERSION;

echo "Integer Maximum Value : ".PHP_INT_MAX;

?> 

Output

Example for __LINE__

You are at line number 5

Example for __FILE__

C:\wamp64\www\gh.php

Example for __DIR__

C:\wamp64\www

C:\wamp64\www

Example for __FUNCTION__

the function name is cash

HELLO

Example for __CLASS__

abc

first

Example for __TRAIT__

created_trait

Example for __METHOD__

meth::__construct

meth::meth_fun

Example for __NAMESPACE__

This line will be printed on calling namespace

Current PHP Version you are using : 5.6.25

Integer Maximum Value : 2147483647

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here