- 论坛徽章:
- 0
|
小弟测试了一下parent,::,$this,self的分别!
环境是apache2,php5.0.1,w2k
self的特点
- <?php
- class a
- {
- public static $a1="我是类a";
- function ca()
- {
- echo "这是类a:".self::$a1;//self的特点是:只能访问静态变量(static)
- echo "
- ;";//输出结果:a1
- }
- }
- $o=new a;
- $o->;ca();
- ?>;
复制代码
$this,parent的特点
- <?php
- class b
- {
- public $b1="我是类b";
- public static $b2="b2";
- function cb()
- {
- echo "这是类b:".$this->;b1;//最普通的访问方法;输出:b1
- echo "
- ;";
- echo $this->;b2;//$this就不能访问static变量了;没有任何输出
- }
- }
- $b1=new b;
- $b1->;cb();
- class eb extends b
- {
- function c()
- {
- echo "这是类eb,执行多一次类b了:".parent::cb();
- echo "
- ;";
- //parent的意思是指向extends的b类,和b::cb()一样,
- //当然也可以使用b::cb()这样访问,但以后修改起来就会很麻烦
- }
- }
- $eb1=new eb;
- $eb1->;c();
- ?>;
复制代码
::的特点
- <?php
- class t1
- {
- function t1_fun()
- {
- echo "我不是类,只是函数.怎样?!这是在没有实例化对象情况下输出的!";
- }
- }
- t1::t1_fun();//这是::的特点,可以在没有实例对象时,就直接调用类里的函数,注意:纯粹是函数而已
- ?>;
复制代码
这是在PHP5版本里的情况,在PHP4里有点不同,有些也不能用!
只是有些地方不一样而已,这些"不一样"可能很容易给初学者弄混,容易走弯路!
希望小弟的这些分析对大家有用!
小弟也是第一次写文章,也是第一次写技术性文章!期盼着大家对我能诚恳的批评!谢谢!  |
|