используйте parent::
только тогда, когда вы собираетесь переопределить функцию в своем дочернем классе
Лучший способ объяснить это в следующем примере:
class Parent {
function test1() {}
function test2() {}
function __construct() {}
}
class Child extends Parent {
function test1() {} // function is overrided
function test3() {
parent::test1(); // will use Parent::test1()
$this->test1(); // will use Child::test1()
$this->test2(); // will use Parent:test2()
}
function __construct() {
parent::__construct() // common use of parent::
... your code.
}
}
Практическипример (статические методы):
class LoaderBase {
static function Load($file) {
echo "loaded $file!<br>";
}
}
class RequireLoader extends LoaderBase {
static function Load($file) {
parent::Load($file);
require($file);
}
}
class IncludeLoader extends LoaderBase {
static function Load($file) {
parent::Load($file);
include($file);
}
}
LoaderBase::Load('common.php'); // this will only echo text
RequireLoader::Load('common.php'); // this will require()
IncludeLoader::Load('common.php'); // this will include()
Output:
loaded common.php!
loaded common.php!
loaded common.php!
В любом случае использование parent :: более полезно в нестатических методах.
Начиная с PHP 5.3.0, в PHP реализована функция, называемая поздними статическими привязками.который может использоваться для ссылки на вызываемый класс в контексте статического наследования.
Больше информации здесь http://php.net/manual/en/language.oop5.late-static-bindings.php