parent AND self PHP oops
self::refers to the current class and it is usually used to accessstatic 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 Childand Ancestorclasses:
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.