zoukankan      html  css  js  c++  java
  • PHP $this,self,static 的区别

    在PHP中 $this->,self::,static:: 都可以用来调用变量或方法,其中 $this 指向当前对象,用于访问非静态变量和非静态方法(静态变量和方法认为是类的元素);
    self和static都是用于访问静态变量和方法,他们区别在于,self 是访问self所在类,而static也叫延迟绑定,访问的是被当前子类的静态变量和方法,请看以下例程:

    abstract class A
    {
        protected $strA = 'this is $strA in class A ';
        protected static $strB =  'this is static $strB in class A';
    
        public  function show_info()
        {
            echo "called class::";echo get_called_class();echo PHP_EOL;
            echo $this->strA;echo PHP_EOL;
            echo self::$strB;echo PHP_EOL;
            echo static::$strB;echo PHP_EOL;
    
    
        }
    }
    
    class B extends A
    {
        protected static $strB =  'this is static $strB in class B';
    
        public function show_info()
        {
            parent::show_info();
        }
    
    
    }
    
    $objB = new B();
    $objB->show_info();
    

      

    输出:

    called class::B
    this is $strA in class A
    this is static $strB in class A
    this is static $strB in class B
    

      

  • 相关阅读:
    无题
    使用git clone 出现 Permission denied 解决办法
    为什么要用BigDecimal
    FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
    版本管理规范
    Intellij Idea 常用快捷键
    AI学习资源
    Python图谱
    网站架构演化历程
    微服务系列
  • 原文地址:https://www.cnblogs.com/jinshao/p/14854402.html
Copyright © 2011-2022 走看看