php中This关键字我不明白的地方

来源:百度知道 编辑:UC知道 时间:2024/09/22 22:39:00
见到了有人用$this->XXX=YYY,但是XXX我没有找到他的定义,我记得java中一定要是类属性才能写成this.XXX的形式 但是我做了个试验 谁能告诉我php的this是什么意思。。。
class testThis
{
var $a=13;
function printThis(){

$this->b = 12;

echo $this->a."\n";
echo $this->b;
}

function printThis2(){
echo $this->a."\n";
echo $this->b;
}
}
$object = new testThis();
$object->printThis();
echo "<p> </p>";
$object->printThis2();
执行后输出是13 12

13 12
也就是说可以不在类属性列表中定义全部的类属性??
$this->b的时候就强制定义了一个类属性b??
要是这样的话php的类管理岂不是非常困难。。。

注意php是弱类语言。。
他不需要事先定义变量的类型也不须事先声明才可以用。
所以$this->b=12 相当于你var $b=12。然后直接调用像你写的echo $this->b;

你的例子里面var $a=13; 就定义了a的值是13。在类里面你用
$this->a就表明你调用$a这个值;

其实$this就是在本类中直接调用属性。千万不能在后面加$符号;

不知道我的理解对你是否有帮助。。我学PHP也不久。。
搞java其实不错; java的面向对象这块很完善。而php则是在php5后才更进一步,并没有java的强

同意楼上,就面向对象来讲确实是Java强大
————————————————
能够输出 $this->b;
是因为
$object->printThis();
中对他进行了赋值

如果你不$object->printThis();
而直接$object->printThis2();
那么他就是空值
————————————————————————
this 就是指向当前对象实例,不指向任何其它对象或类
self 指向类本身,不指向任何实例化的对象
parent是指向父类的指针,一般用来调用父类构造函数

你可以搜一下他们的区别 网上很多 结合例子就比较好理解