PHP 5 Tutorials - Static Data Members and Methods
In this tutorial you will learn all about static data members and methods
- Meaning of static data members
- Meaning of static methods
- Defining static data members in PHP5
- Defining static methods in PHP5
- Accessing static data members in PHP5
- Accessing static methods in PHP5
- Rules to keep in mind for static methods
Meaning of static data members
A data member that is commonly available to all objects of a class is called a static member. Unlike regular data members, static members share the memory space between all objects of the same class.
Meaning of static methods
A static method is a class method that can be called without creating an instance of a class. Such methods are useful when creating utility classes.
Defining static data members in PHP5
To define a static member in PHP5 you need to prefix the class member name with the keyword ’static’. Look at the example below.
class Customer { private $first_name; // regular member static public $instance_count; //static data member }
In the above example $instance_count is declared as a static data member
Defining static methods in PHP5
To define a static data methods in PHP5 you need to prefix the class method name with the keyword ’static’. Look at the example below.
class Customer { public function getFirstName() { //body of method } static public function getInstanceCount() { //body of method } }
In the above example getInstanceCount is declared as a static method
Accessing static data members in PHP5
A static member data can be accessed using the name of the class along with the scope resolution operator (::) i.e. you don’t need to create an instance of that class
Look at the example below:
class Customer { static public $instance_count = 0; //static data member public function __construct() { Customer::$instance_count++; } public function __destruct() { Customer::$instance_count--; } public function getFirstName() { //body of method } static public function getInstanceCount() { //body of method } } $c1 = new Customer(); $c2 = new Customer(); echo Customer::$instance_count;
Output:
2
In the above example, $instance_count is a static data member. Every time a new object is created the constructor is executed and the $instance_count variable is incremented by one. To echo the value contained in $instance_count variable, we use the :: (scope resolution) operator.
Accessing static method in PHP5
A static method can be accessed using the name of the class along with the scope resolution operator (::) i.e. you don’t need to create an instance of that class. However, you can also access it with an instance variable.
Look at the example below:
class Customer { static public $instance_count = 0; //static data member public function __construct() { Customer::$instance_count++; } public function __destruct() { Customer::$instance_count--; } public function getFirstName() { //body of method } static public function getInstanceCount() { return Customer::$instance_count; } } $c1 = new Customer(); $c2 = new Customer(); echo Customer::getInstanceCount(); //this is using the scope resolution operator echo $c1->getInstanceCount(); //this is using the instance variable
Output:
2
2
Rules to keep in mind for static methods
- A static method can only access static data members
- A static method does not have access to the $this variable
Please feel free to write back for any clarification.
Subscribe to my newsletter:
Related Posts on PHP5 Tutorial - Object Oriented Programming (OOPS)
- PHP5 Tutorial - Learn to create a PHP5 Class
- PHP5 Tutorial - Learn to Create a PHP5 Class Object
- PHP5 Tutorial - Defining Attributes of a PHP5 Class
- PHP5 Tutorial - Defining Methods of a PHP5 Class
- PHP5 Tutorial - Creating a PHP5 Constructor __construct()
- PHP5 Tutorial OOPS - Creating a PHP5 Destructor __destruct()
- PHP5 Tutorial OOPS - PHP5 Class Access Specifiers - public, private and protected
- PHP5 Tutorial - $this variable explained
- PHP5 Tutorial - instanceOf Operator Explained
- PHP5 Tutorial - Defining Class Constants
- PHP5 Tutorial - Inheritance
- PHP5 Tutorials - Abstract Class and Interface
- PHP5 OOPS Tutorials - Polymorphism
- PHP5 Tutorial - Magic Methods - __toString() method
- PHP5 Tutorial - Magic Methods - __get() and __set()
- PHP5 Tutorial - Magic Methods - __isset() and __unset()
- PHP5 Tutorial - Magic Methods - __call() method
- PHP5 Tutorial - Magic Methods - __autoload() method
- PHP5 Tutorial - Magic Methods - __sleep() and __wakeup()
- PHP5 Tutorial - Magic Methods - __clone() method
Filed under: PHP, PHP Class Examples, PHP Tutorials, PHP5 OOPS Tutorials
[…] Original post by admin […]