双冒号 ::在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中的使用情况,希望大家喜欢。