- PHP Tutorial
- PHP - Home
- PHP - Introduction
- PHP - Installation
- PHP - History
- PHP - Features
- PHP - Syntax
- PHP - Hello World
- PHP - Comments
- PHP - Variables
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ and $$ Variables
- PHP - Constants
- PHP - Magic Constants
- PHP - Data Types
- PHP - Type Casting
- PHP - Type Juggling
- PHP - Strings
- PHP - Boolean
- PHP - Integers
- PHP - Files & I/O
- PHP - Maths Functions
- PHP - Heredoc & Nowdoc
- PHP - Compound Types
- PHP - File Include
- PHP - Date & Time
- PHP - Scalar Type Declarations
- PHP - Return Type Declarations
- PHP Operators
- PHP - Operators
- PHP - Arithmatic Operators
- PHP - Comparison Operators
- PHP - Logical Operators
- PHP - Assignment Operators
- PHP - String Operators
- PHP - Array Operators
- PHP - Conditional Operators
- PHP - Spread Operator
- PHP - Null Coalescing Operator
- PHP - Spaceship Operator
- PHP Control Statements
- PHP - Decision Making
- PHP - If…Else Statement
- PHP - Switch Statement
- PHP - Loop Types
- PHP - For Loop
- PHP - Foreach Loop
- PHP - While Loop
- PHP - Do…While Loop
- PHP - Break Statement
- PHP - Continue Statement
- PHP Arrays
- PHP - Arrays
- PHP - Indexed Array
- PHP - Associative Array
- PHP - Multidimensional Array
- PHP - Array Functions
- PHP - Constant Arrays
- PHP Functions
- PHP - Functions
- PHP - Function Parameters
- PHP - Call by value
- PHP - Call by Reference
- PHP - Default Arguments
- PHP - Named Arguments
- PHP - Variable Arguments
- PHP - Returning Values
- PHP - Passing Functions
- PHP - Recursive Functions
- PHP - Type Hints
- PHP - Variable Scope
- PHP - Strict Typing
- PHP - Anonymous Functions
- PHP - Arrow Functions
- PHP - Variable Functions
- PHP - Local Variables
- PHP - Global Variables
- PHP Superglobals
- PHP - Superglobals
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP File Handling
- PHP - File Handling
- PHP - Open File
- PHP - Read File
- PHP - Write File
- PHP - File Existence
- PHP - Download File
- PHP - Copy File
- PHP - Append File
- PHP - Delete File
- PHP - Handle CSV File
- PHP - File Permissions
- PHP - Create Directory
- PHP - Listing Files
- Object Oriented PHP
- PHP - Object Oriented Programming
- PHP - Classes and Objects
- PHP - Constructor and Destructor
- PHP - Access Modifiers
- PHP - Inheritance
- PHP - Class Constants
- PHP - Abstract Classes
- PHP - Interfaces
- PHP - Traits
- PHP - Static Methods
- PHP - Static Properties
- PHP - Namespaces
- PHP - Object Iteration
- PHP - Encapsulation
- PHP - Final Keyword
- PHP - Overloading
- PHP - Cloning Objects
- PHP - Anonymous Classes
- PHP Web Development
- PHP - Web Concepts
- PHP - Form Handling
- PHP - Form Validation
- PHP - Form Email/URL
- PHP - Complete Form
- PHP - File Inclusion
- PHP - GET & POST
- PHP - File Uploading
- PHP - Cookies
- PHP - Sessions
- PHP - Session Options
- PHP - Sending Emails
- PHP - Sanitize Input
- PHP - Post-Redirect-Get (PRG)
- PHP - Flash Messages
- PHP AJAX
- PHP - AJAX Introduction
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - AJAX RSS Feed Example
- PHP XML
- PHP - XML Introduction
- PHP - Simple XML Parser
- PHP - SAX Parser Example
- PHP - DOM Parser Example
- PHP Login Example
- PHP - Login Example
- PHP - Facebook Login
- PHP - Paypal Integration
- PHP - MySQL Login
- PHP Advanced
- PHP - MySQL
- PHP.INI File Configuration
- PHP - Array Destructuring
- PHP - Coding Standard
- PHP - Regular Expression
- PHP - Error Handling
- PHP - Try…Catch
- PHP - Bugs Debugging
- PHP - For C Developers
- PHP - For PERL Developers
- PHP - Frameworks
- PHP - Core PHP vs Frame Works
- PHP - Design Patterns
- PHP - Filters
- PHP - JSON
- PHP - Exceptions
- PHP - Special Types
- PHP - Hashing
- PHP - Encryption
- PHP - is_null() Function
- PHP - System Calls
- PHP - HTTP Authentication
- PHP - Swapping Variables
- PHP - Closure::call()
- PHP - Filtered unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - Expectations
- PHP - Use Statement
- PHP - Integer Division
- PHP - Deprecated Features
- PHP - Removed Extensions & SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI Process
- PHP - PDO Extension
- PHP - Built-In Functions
- PHP Useful Resources
- PHP - Questions & Answers
- PHP - Quick Guide
- PHP - Useful Resources
- PHP - Discussion
PHP - Magic Constants
The magical constants in PHP are predefined constants. They are available to any script on which they run, and they change depending on where they are used. All these "magical" constants are resolved at compile time, unlike regular constants, which are resolved at runtime.
There are nine magical constants in PHP. These special constants are case insensitive.
__LINE__
It returns the current line number of the file. The following example shows how you can use this magic constant.
<?php $x="Hello World"; echo "$x. The current Line number is " . __LINE__ . "."; ?>
It will produce the following output −
Hello World. The current Line number is 5.
__FILE__
This magic constant returns the full path and filename of the file. If used inside an include, the name of the included file is returned. Take a look at the following example −
<?php $x="Hello World"; echo "$x. Current PHP script name is " . __FILE__ . "."; ?>
It will produce the following output −
Hello World. Current PHP script name is C:\xampp\htdocs\hello.php.
__DIR__
This magical constant returns the directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to "dirname(__FILE__)". This directory name does not have a trailing slash unless it is the root directory. See the following example −
<?php $x="Hello World"; echo "$x. Directory of the Current PHP script name is " . __DIR__ . "."; ?>
It will show the following output on the browser −
Hello World. Directory of the Current PHP script name is C:\xampp\htdocs.
__FUNCTION__
This magical constant returns the function name in which the constant is used, or {closure} for anonymous functions. The following example shows how it works −
<?php function hello(){ $x="Hello World"; echo "$x. The function name is ". __FUNCTION__ . ""; } hello(); ?>
It will produce the following output −
Hello World. The function name is hello
If this magic constant is used outside the function, then it will give a blank output.
__CLASS__
This constant returns the name of a class. The class name includes the namespace it was declared in. See the following example −
<?php class myclass { public function __construct() { echo "Inside the constructor of ". __CLASS__ . PHP_EOL; } function getClassName(){ echo "from an instance method of " . __CLASS__ . ""; } } $obj = new myclass; $obj->getClassName(); ?>
It will produce the following output −
Inside the constructor of myclass from an instance method of myclass
__METHOD__
The __METHOD__ constant returns the class method name. The following example shows how it works −
<?php class myclass { public function __construct() { echo "Calling " . __METHOD__ . " of " . __CLASS__ ."<br>"; } function mymethod(){ echo "Calling " . __METHOD__ . " of " . __CLASS__ .""; } } $obj = new myclass; $obj->mymethod(); ?>
It will produce the following output −
Calling myclass::__construct of myclass Calling myclass::mymethod of myclass
__TRAIT__
It returns the trait name. The trait name includes the namespace it was declared in. In PHP, traits are a mechanism for code reuse. A trait is similar to a class, but only intended to group functionality in a fine-grained and consistent way. It is not possible to instantiate a trait on its own.
Take a look at the following example −
<?php trait mytrait { public function hello() { echo "Hello World from " . __TRAIT__ .""; } } class myclass { use mytrait; } $obj = new myclass(); $obj->hello(); ?>
It will produce the following output −
Hello World from mytrait
__NAMESPACE__
This constant returns the name of the current namespace. In PHP, namespaces allow us to use classes / functions / constants of same name in different contexts without any conflict, thereby encapsulating these items. A namespace is a logical grouping of classes/functions depending on their relevance.
The following example shows how you can use this magic constant −
<?php namespace myspace; class myclass { public function __construct() { echo "Name of the class: " . __CLASS__ . " in " . __NAMESPACE__ . ""; } } $class_name = __NAMESPACE__ . '\myclass'; $a = new $class_name; ?>
It will produce the following output −
Name of the class: myspace\myclass in myspace
ClassName::class
Unlike the other magic constants, this magic constant does not start and end with the double underscore (__). It returns the fully qualified class name.
The following example shows how you can use this magic constant −
<?php namespace myspace; class myclass { public function __construct() { echo "Name of the class: " . myclass::class ; } } use myspace; $a = new myclass; ?>
It will produce the following output −
Name of the class: myspace\myclass