PHP PHP双冒号::的用法

双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态、const和类中重写的属性与方法。

在类定义外使用的话,使用类名调用。在PHP 5.3.0,可以使用变量代替类名。

Program List:用变量在类定义外部访问
01<?php
02class Fruit {
03    const CONST_VALUE = 'Fruit Color';
04}
05 
06$classname = 'Fruit';
07echo $classname::CONST_VALUE; // As of PHP 5.3.0
08 
09echo Fruit::CONST_VALUE;
10?>
Program List:在类定义外部使用::
01<?php
02class Fruit {
03    const CONST_VALUE = 'Fruit Color';
04}
05 
06class Apple extends Fruit
07{
08    public static $color = 'Red';
09 
10    public static function doubleColon() {
11        echo parent::CONST_VALUE . "\n";
12        echo self::$color . "\n";
13    }
14}
15 
16Apple::doubleColon();
17?>

程序运行结果:

1Fruit Color Red
Program List:调用parent方法
01<?php
02class Fruit
03{
04    protected function showColor() {
05        echo "Fruit::showColor()\n";
06    }
07}
08 
09class Apple extends Fruit
10{
11    // Override parent's definition
12    public function showColor()
13    {
14        // But still call the parent function
15        parent::showColor();
16        echo "Apple::showColor()\n";
17    }
18}
19 
20$apple = new Apple();
21$apple->showColor();
22?>

程序运行结果:

1Fruit::showColor()
2Apple::showColor()
Program List:使用作用域限定符
01<?php
02    class Apple
03    {
04        public function showColor()
05        {
06            return $this->color;
07        }
08    }
09 
10    class Banana
11    {
12        public $color;
13 
14        public function __construct()
15        {
16            $this->color = "Banana is yellow";
17        }
18 
19        public function GetColor()
20        {
21            return Apple::showColor();
22        }
23    }
24 
25    $banana = new Banana;
26    echo $banana->GetColor();
27?>

程序运行结果:

1Banana is yellow
Program List:调用基类的方法
01<?php
02 
03class Fruit
04{
05    static function color()
06    {
07        return "color";
08    }
09 
10    static function showColor()
11    {
12        echo "show " . self::color();
13    }
14}
15 
16class Apple extends Fruit
17{
18    static function color()
19    {
20        return "red";
21    }
22}
23 
24Apple::showColor();
25// output is "show color"!
26 
27?>

程序运行结果:

1show color
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值