This article illustrates the way PHP delays static binding. Share to everyone for your reference. The specific analysis is as follows:
PHP deferred static binding: The self of the class, not the definition, but the run-time result of the calculation. First look at an example
<?php
Header ("Content-type:text/html;charset=utf-8");
Class human{public
static function Hei () {
echo "I am the Hei () method of the parent class";
}
Public function say () {//If the subclass calls the Say () method of the parent class, then
Self::hei ();//The Hei () method of the parent class is invoked
Static::hei ();
This invokes the HEI () method of the subclass, and if the subclass does not exist the HEI () method, calls the parent class's
}
class Stu extends human{public
static function Hei () {
echo "I am a subclass of the Hei () method";
}
}
$stu = new Stu ();
$stu->say ();
? >
Description
(1) The subclass instantiation Object $stu Invoke the Say method, is run within the parent class human, so the Self::hei () in Say () is the HEI () method that invokes the parent class.
(2) Static:: Method Name (): Use a static keyword, the first is to find the method in the subclass, if not found, to find in the parent class.
I hope this article will help you with your PHP program design.