使用常规方法,我们new一个对象$stu1时定义参数:
[php]class Student {
public function introduce($stu){
…………
}
}
$stu1 = new Student;
$stu1->introduce($stu1);[/php]
$this
$this是一个“伪对象”,代表当前所属类的“当前对象”!
什么是“当前对象”?
当前谁调用,谁就是“当前对象”!
第一次是$stu1这个对象调用introduce方法,该方法内的$this关键字就代表$stu1这个对象;
第一次是$stu2这个对象调用introduce方法,该方法内的$this关键字就代表$stu2这个对象;
所以,$this永远是当前对象,当前是哪个对象在调用,它就代表哪个对象!!!
为什么在打印一个对象的时候,只打印出了该对象的属性成员,而没有打印出对象的方法?
[php]var_dump($stu1);
object(Student)#1 (3){
["stu_name"]=>
string(2)"鸣人"
["stu_age"]=>
int(21)
["stu_money"]=>
int(30000)
}
[/php]
再次强调:属性不能在方法内直接访问,需要先找到其对象才能访问,典型的做法就是在方法内使用$this关键字来代替当前对象!