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)
上一篇 2022年 10月 19日 上午11:32
下一篇 2022年 10月 19日 下午6:47

相关推荐

  • 基于JQuery的AJAX异步文件上传方法

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

    2022年 11月 8日
    42
  • PHP连接数据库:使用类和函数两种方式

    PHP连接数据库是非常常用的功能,在初学时,一般使用函数来连接。 函数的方式非常简单,如果不需要报错信息的话,只有2行代码,加上报错信息,也只有6行而已。 我们尝试定义一个类来连接数据库,如下所示: 好家伙,...

    2022年 10月 20日
    55
  • CentOS 开放端口和防火墙配置

    CentOS 快速开放端口 CentOS升级到7之后,无法使用iptables控制Linuxs的端口,Centos 7使用firewalld代替了原来的iptables。此方案实测也适用于CentOS Stream 9。 查看防火墙状态 查询放行端口列表 开启端口(以添加...

    2022年 11月 7日
    58
  • PHP:单例模式的多功能数据库工具类

    此数据库工具类根据传智播客2018年8月的PHP教程所设计。...

    2022年 10月 28日
    46
  • PHP类的自动加载函数:spl_autload_register()

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

    2022年 10月 22日
    57

发表回复

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