前幾天在百度知道里面看到有人問PHP中雙冒號::的用法,當時給他的回答比較簡潔因為手機打字不大方便!今天突然想起來,所以在這里總結(jié)一下我遇到的雙冒號::在PHP中使用的情況!
雙冒號操作符即作用域限定操作符Scope Resolution Operator可以訪問靜態(tài)、const和類中重寫的屬性與方法。
在類定義外使用的話,使用類名調(diào)用。在PHP 5.3.0,可以使用變量代替類名。
Program List:用變量在類定義外部訪問
- <?php
- class Fruit {
- const CONST_VALUE = 'Fruit Color';
- }
- $classname = 'Fruit';
- echo $classname::CONST_VALUE; // As of PHP ..
- echo Fruit::CONST_VALUE;
- ?>
- Program List:在類定義外部使用::
- <?php
- class Fruit {
- const CONST_VALUE = 'Fruit Color';
- }
- class Apple extends Fruit
- {
- public static $color = 'Red';
- public static function doubleColon() {
- echo parent::CONST_VALUE . "/n";
- echo self::$color . "/n";
- }
- }
- Apple::doubleColon();
- ?>
程序運行結(jié)果:
Fruit Color Red
Program List:調(diào)用parent方法
- <?php
- class Fruit
- {
- protected function showColor() {
- echo "Fruit::showColor()/n";
- }
- }
- class Apple extends Fruit
- {
- // Override parent's definition
- public function showColor()
- {
- // But still call the parent function
- parent::showColor();
- echo "Apple::showColor()/n";
- }
- }
- $apple = new Apple();
- $apple->showColor();
- ?>
程序運行結(jié)果:
Fruit::showColor()
Apple::showColor()
Program List:使用作用域限定符
- <?php
- class Apple
- {
- public function showColor()
- {
- return $this->color;
- }
- }
- class Banana
- {
- public $color;
- public function __construct()
- {
- $this->color = "Banana is yellow";
- }
- public function GetColor()
- {
- return Apple::showColor();
- }
- }
- $banana = new Banana;
- echo $banana->GetColor();
- ?>
程序運行結(jié)果:
Banana is yellow
Program List:調(diào)用基類的方法
- <?php
- class Fruit
- {
- static function color()
- {
- return "color";
- }
- static function showColor()
- {
- echo "show " . self::color();
- }
- }
- class Apple extends Fruit
- {
- static function color()
- {
- return "red";
- }
- }
- Apple::showColor();
- // output is "show color"!
- ?>
程序運行結(jié)果:
show color
以上內(nèi)容給大家詳解了::在PHP中的使用情況,希望大家喜歡。
|
新聞熱點
疑難解答