zoukankan      html  css  js  c++  java
  • PHP this、self与static的区别

    /**
    * 父类P中 获取子类C的类名
    */
    class P
    {
    public static function getParent()
    {
    return self::class;
    }

    public static function getChild()
    {
    return static::class;
    }

    public function getClassName(){
    echo __CLASS__; // 获取当前的类名
    }

    public function getThis(){
    var_dump($this);
    }
    }

    class C extends P
    {

    }

    echo C::getParent(), PHP_EOL; // P
    echo C::getChild(), PHP_EOL; // C
    echo (new C())->getClassName(), PHP_EOL; // P
    echo (new C())->getThis(), PHP_EOL; // C
    /*
    总结:
    * 1.在 PHP 里,在没有继承时候,你用self::class 和 static::class是一样的,都是获取当前类名。
    * 2.如果用到了继承,并且这个方法写在了父类里,你想要分别获取当前父类名和未知的子类名,就要按照下面的方法进行获取。
    * 在 PHP 类中,self指向的是当前方法存在的这个类,也就是父类。static指向的是最终那个子类
    * 3.this也有static的效果,只不过区别一个是非静态一个是静态
    */

      

  • 相关阅读:
    Redis常见7种使用场景(PHP)
    阻塞式I/O实现简单TCP通信
    telnet客户端程序
    TCP简单回射程序
    getsockname和getpeername函数
    close函数
    TCP时间获取程序
    listen函数
    基本套接字编程
    readline.c
  • 原文地址:https://www.cnblogs.com/f-rt/p/12467502.html
Copyright © 2011-2022 走看看