双冒号 ::在PHP中的使用情况
前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!
双冒号操作符即作用域限定操作符ScopeResolutionOperator可以访问静态、const和类中重写的属性与方法。
在类定义外使用的话,使用类名调用。在PHP5.3.0,可以使用变量代替类名。
ProgramList:用变量在类定义外部访问
<?php classFruit{ constCONST_VALUE='FruitColor'; } $classname='Fruit'; echo$classname::CONST_VALUE;//AsofPHP.. echoFruit::CONST_VALUE; ?> ProgramList:在类定义外部使用:: <?php classFruit{ constCONST_VALUE='FruitColor'; } classAppleextendsFruit { publicstatic$color='Red'; publicstaticfunctiondoubleColon(){ echoparent::CONST_VALUE."\n"; echoself::$color."\n"; } } Apple::doubleColon(); ?>
程序运行结果:
FruitColorRed
ProgramList:调用parent方法
<?php classFruit { protectedfunctionshowColor(){ echo"Fruit::showColor()\n"; } } classAppleextendsFruit { //Overrideparent'sdefinition publicfunctionshowColor() { //Butstillcalltheparentfunction parent::showColor(); echo"Apple::showColor()\n"; } } $apple=newApple(); $apple->showColor(); ?>
程序运行结果:
Fruit::showColor()
Apple::showColor()
ProgramList:使用作用域限定符
<?php classApple { publicfunctionshowColor() { return$this->color; } } classBanana { public$color; publicfunction__construct() { $this->color="Bananaisyellow"; } publicfunctionGetColor() { returnApple::showColor(); } } $banana=newBanana; echo$banana->GetColor(); ?>
程序运行结果:
Bananaisyellow
ProgramList:调用基类的方法
<?php classFruit { staticfunctioncolor() { return"color"; } staticfunctionshowColor() { echo"show".self::color(); } } classAppleextendsFruit { staticfunctioncolor() { return"red"; } } Apple::showColor(); //outputis"showcolor"! ?>
程序运行结果:
showcolor
以上内容给大家详解了::在PHP中的使用情况,希望大家喜欢。