zoukankan      html  css  js  c++  java
  • php关于static和self的一点理解

    在使用和学习laravel的过程中,总会看到类似与static::methods 或者static::variable的使用方式,对此感觉到疑惑和不解,后来查阅了相关的资料才知道他是php5.3之后新加入的语法,叫做静态绑定。它可以在运行时,实时的跟当前的类挂钩,这么说可能有点不理解,还是直接上代码吧,看一下他跟self的区别。

    <?php
    
    class Fruit 
    {
        public static function echoName()
        {
            echo "fruit".PHP_EOL;
        }
    
        public static function selfName()
        {
            self::echoName();
        }
    
        public static function staticName()
        {
            static::echoName();
        }
    }
    
    class Banana extends Fruit
    {
        public static function echoName()
        {
            echo "banana".PHP_EOL;
        }
    }
    
    Banana::selfName();//fruit
    Banana::staticName();//banana
    

    查看输出之后,才知道差别,self主要是在那个类里面编写,就绑定的哪个类,但是static则不是,他是跟当前类绑在一起的,是你用哪个类就调用哪个类的方法。

  • 相关阅读:
    utils04_搭建私有Git服务器
    utils03_clone远程仓库
    java 22
    java 22
    java 22
    java 22
    java 22
    java 22
    java 22
    java 22
  • 原文地址:https://www.cnblogs.com/ontheway1024/p/7291876.html
Copyright © 2011-2022 走看看