Home >Backend Development >PHP Tutorial >In-depth analysis of PHP final keyword usage skills_PHP tutorial
PHP programmers have mastered
In PHP, class inheritance is the most used programming feature. We can create a base class (parent class) and then Define some basic methods here. In our subclass, we can extend the methods in the parent class. This is called overriding. However, if you have some key methods in the parent class, you cannot inherit them from the subclass, because if the subclass If a class inherits this method, it may bring some trouble to the program, so we hope that this method is "private" and cannot be extended. In PHP, the final keyword is used to modify the method that you do not want to inherit.
PHP final keyword can modify the class and also modify the methods in the class, but their functions are similar, that is, if you use the final keyword to modify, then the modified class or method will Cannot be extended or inherited. You can only quote it honestly. If you use final in front of a class, it means that this class cannot use inheritance; if you use the PHP final keyword in front of a method, it means that this method cannot be overridden. The truth is that simple, let us also look at a simple example.
<ol class="dp-xml"><li class="alt"> <span class="tag"><</span> ?PHP </li><li><span>final class BaseClass { </span></li><li class="alt"><span>public function test() { </span></li><li><span>echo "BaseClass::test() calledn"; </span></li><li class="alt"><span>} </span></li><li><span>final public function moreTesting() { </span></li><li class="alt"><span>echo "BaseClass::moreTesting() calledn"; </span></li><li><span>} </span></li><li class="alt"><span>} </span></li><li><span>class ChildClass extends BaseClass { </span></li><li class="alt"><span>public function moreTesting() { </span></li><li><span>echo "ChildClass::moreTesting() calledn"; </span></li><li class="alt"><span>} </span></li><li><span>} </span></li><li class="alt"><span>// Results in Fatal error: Cannot override final method BaseClass::moreTesting() </span></li><li><span class="tag">?></span><span> </span> </li></ol>
In this example, we added the PHP final keyword before the class and the method to modify our specific class. Of course, this class cannot be output as required. , you can debug it yourself. The basic principle is this. We just need to remember that if a class or method uses final, it means that the class cannot be inherited or the subclass cannot override the method of the parent class.