self,parent,this的区别和用法

本文深入探讨PHP中类与对象的基本概念,包括属性、方法、继承等关键特性,并通过实例展示了如何正确使用self、parent及const关键字。文章还强调了静态成员在类中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
我对PHP类的理解,个人得出的结论是:
类的属性必须是static静态的话,可以通过self::属性
类的属性定义或是默认为public的话,可以用this访问,因为对象初始化之后可以访问并初始化。
类的父级别方法或属性定义为public的static,可以用parent和this来访问.
如果只定义为public,必须用this访问.
而特殊的情况下可以使用const,它是定义常量的方法,通俗的讲常量是经常使用的变量,但是不能修改。相当于一个全局变量。
同时如果定义一个类的方法为const,就相当于全局函数方法了。
以上观点未必百分之百对,但是实验证明了一切,如有错误,请到 www.okpython.com;python中国交流,谢谢.
*/
<?PHP
class test_top{
        public $s = "iam parent class";
        public static $ss = "this parent classes";
}
class test extends test_top{//class start
    public $kv = "hello,world";
        public static $kv1 = "hello,myselfssssss";
        function __construct(){
                print $this->kv;   //对象初始化后访问
                print self::$kv1;  //类本身属性
                print parent::$s."ssssf"; //通过parent访问父类公共访问变量s,但是这样访问一定会出错,因为$s不是静态的
                print parent::$ss; //通过parent访问父类公共访问静态变量ss
                print $this->s;  //通过THIS访问父类公共访问变量s
                print $this->ss; //可以访问
        }

        
}//class end

$k = new test;
$k;
外部可以直接访问类,无需建立.(注意,方法一定是静态成员组才可以这样访问,否则还是需要用new建立一下的)
test::方法;
?> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值