Blogger Information
Blog 40
fans 1
comment 0
visits 32769
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php的后期静态绑定技术
李明伟的博客
Original
916 people have browsed it
<?php
//php的静态重载技术
class Father
{
    //静态属性
    public static $money = 50000;

    //静态方法
    public static function getClass()
    {
        //返回当前类名
        return __CLASS__;
    }

    //静态方法
    public static function getMoney()
    {
//        return self::getClass().'::'.self::$money;
        //static用在静态继承的上下文中,动态设置静态成员的调用者(主体)
        return static::getClass().'::'.static::$money;

    }
}

//定义子类,继承自Father
class Son extends Father
{
    //复写父类的静态属性
    public static $money = 30000;

    //复写父类的静态方法
    public static function getClass()
    {
        return __CLASS__;
    }
}

//调用Father的静态方法
echo Father::getClass().'<hr>';
echo Father::getMoney().'<hr>';

//调用Son的静态成员
echo Son::$money.'<hr>';
//调用Son的静态方法
echo Son::getClass().'<hr>';
echo Son::getMoney().'<hr>;'
?>

php的延迟静态绑定技术:

self或__CLASS__的限制是在于它们绑定的类是定义该方法的类,在编译时绑定,继承并不会改变绑定的类。

static则是在执行时才绑定类,可以动态绑定当前的类

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments