LAMP 大讲堂 PHP 面向对象技术(全面讲解)
网站:http://www.phpchina.com 投稿:phper@phpchina.com 《PHPer》
echo “p3对象的年龄是:”.$p3->age.”<br>”;
//下面两行访问$p3对象中的方法
$p3->say();
$p3->run();
?>
从上例中可以看出只是对象里面的成员就要使用对象->属性、对象->方法形式访问,再没有第
二种方法来访问对象中的成员了。
7.特殊的引用“$this”的使用
现在我们知道了如何访问对象中的成员,是通过“对象->成员”的方式访问的,这是在对象的外
部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对象的属性,或
是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所有的成员都要用对
象来调用,包括对象的内部成员之间的调用,所以在 PHP 里面给我提供了一个本对象的引用$this,
每个对象里面都有一个对象的引用$this 来代表这个对象,完成对象内部成员的调用, this 的本意就是
“这个”的意思,上面的实例里面,我们实例化三个实例对象$P1、$P2、$P3,这三个对象里面各
自存在一个$this 分别代表对象$p1、$p2、$p3 。
通过上图我们可以看到,$this 就是对象内部代表这个对象的引用,在对象内部和调用本对象的
成员和对象外部调用对象的成员所使用的方式是一样的。
$this->属性 $this->name; $this->age; $this->sex;
$this->方法 $this->say(); $this->run();
修改一下上面的实例,让每个人都说出自己的名字,性别和年龄:
<?php
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//下面是人的成员方法
function say() //这个人可以说话的方法
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
function run() //这个人可以走路的方法
{
echo "这个人在走路";
}
}
$p1=new Person(); //创建实例对象$p1
$p2=new Person(); //创建实例对象$p2