0
点赞
收藏
分享

微信扫一扫

PHP静态绑定知识点学习记录

代码小姐 2022-02-26 阅读 41
php学习

最近在学习JAVA基础中关于静态方法的知识,回想起PHP可以使用self::或者static::,两种方式来进行静态方法的调用,有些忘记两者的差异,因此,做一下学习记录。“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

参考的链接:PHP后期静态绑定(self与static)_抬头看世界,低头写代码的技术博客_51CTO博客

self::的限制

<?php
    class A {
        public static function who() {
            echo __CLASS__;
        }

        public static function test() {
            self::who();
        }
    }

    class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }

    B::test(); // A
?>

后期静态绑定的用法

<?php
    class A {
        public static function who() {
            echo __CLASS__.PHP_EOL;
        }
    
        public static function test() {
            self::who();
        }
    
        public static function test2() {
            static::who();
        }
    }

    class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }

    B::test();  // A
    B::test2(); // B

?>
举报

相关推荐

知识点记录

Node知识点记录

python知识点记录

iOS 知识点记录

前端知识点记录总结

PHP相关知识点目录

学习知识点

nginx小知识点记录

0 条评论