parent:: AND self:: in PHP

By: Andi, Stig and Derick Viewed: 153226 times  Printer Friendly Format    


PHP supports two reserved class names that make it easier when writing OO applications. self:: refers to the current class and it is usually used to access static members, methods, and constants. parent:: refers to the parent class and it is most often used when wanting to call the parent constructor or methods. It may also be used to access members and constants. You should use parent:: as opposed to the parent’s class name because it makes it easier to change your class hierarchy because you are not hard-coding the parent’s class name.

The following example makes use of both parent:: and self:: for accessing the Child and Ancestor classes:

class Ancestor {

const NAME = "Ancestor";

function __construct()

{

print "In " . self::NAME . " constructor\n";

}

}

class Child extends Ancestor {

const NAME = "Child";

function __construct()

{

parent::__construct();

print "In " . self::NAME . " constructor\n";

}

}

$obj = new Child();

The previous example outputs

In Ancestor constructor

In Child constructor

Make sure you use these two class names whenever possible.



Most Viewed Articles (in PHP )

Latest Articles (in PHP)

Comment on this tutorial