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

Thanks….
hi,i m new in php,can u send me a small program to insert values in database using class concept