In this Artical 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 classLook 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;
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 PHP
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
2
2
Rules to Remember for static methods
- A static method can only access static data members
- A static method does not have access to the $this variable
No comments:
Post a Comment