<?php class A{ static function getClassName(){ return "this is class A"; } static function testSelf(){ echo self::getClassName(); } static function testStatic(){ echo static::getClassName(); } } class B extends A{ static function getClassName(){ return "this is class B"; } } B::testSelf(); echo "<br/>"; B::testStatic();
输出结果:
this is class A this is class B
self调用的静态方法或属性始终表示其在使用的时候的当前类(A)的方法或属性,可以替换为其类名,但是在类名很长或者有可能变化的情况下,使用self::的方式无疑是更好的选择。
static调用的静态方法或属性会在继承中被其子类重写覆盖,应该替换为对应的子类名(B)。
parent关键字用于调用父类的方法和属性。在静态方法中,可以调用父类的静态方法和属性;在非静态方法中,可以调用父类的方法和属性。
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/9337581.html