PHP类:$this和self关键字

$this是指向对象的指针,self是指向当前类的指针。

来一个案例

class ClassName{
    public $abc1="123";//成员属性
    public static $abc2="456";//静态属性
    const abc3="789";//常量

    public function showABC(){//成员方法
        echo $this->abc1;
        echo self::$abc2;
        echo self::abc3;
    }
}
$New_obj=new ClassName;
$New_obj->showABC();

输出:123456789

$this只能在成员方法中使用。self既可以在成员方法中使用,也可以在静态方法中使用,用来调用类的常量、静态属性和方法。

class ClassName{
    public $abc1="123";//成员属性
    public static $abc2="456";//静态属性
    const abc3="789";//常量

    public static function showABC(){//静态方法
        echo $this->abc1;
    }
}
$New_obj=new ClassName;
$New_obj->showABC();

输出:Uncaught Error: Using $this when not in object context

若在静态方法中调用$this关键字,PHP将会报错。

原创文章,作者:STEVE,如若转载,请注明出处:https://shinecloud.com.cn

(0)
STEVESTEVE
上一篇 2022年 10月 19日 上午11:32
下一篇 2022年 10月 19日 下午6:47

相关推荐

  • PHP类:成员、静态、常量的区别和选择

    PHP的类中,分为常量、静态、成员三类,初学者很容易搞混乱,笔者在学习之时也深感头疼,觉得不好理解。 分享一下学习的总结,如有错误之处敬请指正。 权限修饰符 权限修饰符用来声明变量的权限,共有三种。 public…

    2022年 10月 19日
    391
  • PHP:数组变量的序列化和反序列化

    序列化和反序列化是PHP操作数据库、读写文件时常见的操作。 序列化,就是将PHP的变量转化为可保存的、可传输的字符串的过程; 反序列化,则是将(序列化的)字符串转化回变量。 比如,我们需要将某学生的个人信息写…

    2022年 10月 25日
    301
  • 基于JQuery的AJAX异步文件上传方法

    对于许多初学者而言,上传表单很容易,但上传文件就麻烦了。 这里给出一个简单的方法,供参考。 HTML部分 谨记:action可以留空,enctype要设为“multipart/form-data” Javascript部分 PHP部分 如果不出意外,你的前…

    2022年 11月 8日
    502
  • PHP类的自动加载函数:spl_autload_register()

    一个PHP项目里通常有许多个类(class),如果在每个PHP页面的开头进行引入,非常麻烦,尤其是不同的PHP页面需要不同的类。 因此,PHP7之前,有__autoload()函数用于自动引用类,PHP7之后则改为了spl_autload_regist…

    2022年 10月 22日
    351
  • 实战:最麻烦的群晖SHR+Btrfs阵列数据救援

    开篇语 这篇文章与其说是教程,不如说是一次经验总结。 我并不是专业数据恢复人员,只是在互联网上搜索各类教程,然后尝试,最终获得了成功! 前前后后一共折腾了5天,有很多次都不想搞了,但我抱着一个信念:只要…

    2022年 8月 18日
    883

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注