【繁花殿php资源交流】之self,parent,this的区别以及用法
2012/11/29 5:23:00 人气 380 怀旧国机论坛/*
我对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::方法;
我对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::方法;
沙发 | ┆◆繁花殿☆┆资源组~长丶筱富11-29 07:00 <br/>钓鱼岛是中国的,苍井空才是全世界的! |
发表回复