zoukankan      html  css  js  c++  java
  • PHP中this,self,parent的区别之二self篇

      曾经自学看,还是工作需要熟悉PHP框架,一直都不太懂类似这样的语句self::getXSSAtt()

      今天找到一篇,与大家分享

      首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。假如我们使用类里面静态(一般用关键字static)的成员,我们也必须使用self来调用。还要注意使用self来调用静态变量必须使用:: (域运算符号),见实例。

     <?php

        classcounter     //定义一个counter的类
        {
            //定义属性,包括一个静态变量$firstCount,并赋初值0 语句①  
            private static $firstCount = 0;
            private $lastCount;

            //构造函数
            function __construct()
            {
                 $this->lastCount =++self::$firstCount;      //使用self来调用静态变量 语句②
            }

            //打印lastCount数值
            function printLastCount()
            {
                 print( $this->lastCount );
            }
        }

     //实例化对象
      $obj = new Counter();

     $obj->printLastCount();                             //执行到这里的时候,程序输出1

     ?>

    这里要注意两个地方语句①语句②。我们在语句①定义了一个静态变量$firstCount,那么在语句②的时候使用了self调用这个值,那么这时候我们调用的就是类自己定义的静态变量$frestCount。我们的静态变量与下面对象的实例无关,它只是跟类有关,那么我调用类本身的的,那么我们就无法使用this来引用,因为self是指向类本身,与任何对象实例无关。然后前面使用的this调用的是实例化的对象$obj,大家不要混淆了。

    关于self就说到这里,结合例子还是比较方便理解的。第二篇结束。

    更多内容来自-伊来网Eliyahr

  • 相关阅读:
    【BootStrap】有序/无序列表 代码和表单
    【BootStrap】BootStrap排版
    【BootStrap】栅格系统
    【Django】组合筛选
    【Ajax】Ajax全套+跨域Ajax
    【JavaScript】JavaScript面试题1
    【Django】Form组件-1
    【Django】cookie和session
    【Django】 Admin 管理工具
    【Django】ORM操作数据库
  • 原文地址:https://www.cnblogs.com/vliegen/p/3030898.html
Copyright © 2011-2022 走看看