//执行打印
$obj2
->printname();
//输出:PHP
?>
说明:上面的类分别在 语句①和语句②使用了 this 指针,那么当时 this 是指向谁呢?其
实 this 是在实例化的时候来确定指向谁,比如第一次实例化对象的时候(语句③),那么当
时 this 就是指向
$obj1
对象,那么执行语句②的打印时就把
(
$this
-><name ) 变成了
(
$obj1t
->name ),那么当然就输出了"PBPHome"。第二个实例的时候,
(
$this
-
>name )变成了
(
$obj2
->name),于是就输出了"PHP"。所以说,this 就是指向当前对象
实例的指针,不指向任何其他对象或类。
{二}PHP 中 this,self,parent 的区别之二 self 篇
此篇我们就 self 的用法进行讲解
首先我们要明确一点,self 是指向类本身,也就是 self 是不指向任何已经实例化的对象,
一般 self 使用来指向类中的静态变量。假如我们使用类里面静态(一般用关键字
static
)的
成员,我们也必须使用 self 来调用。还要注意使用 self 来调用静态变量必须使用:: (域运算
符号),见实例。
代码如下::
<?php
classcounter
//定义一个 counter 的类
{
//定义属性,包括一个静态变量$firstCount,并赋初值 0
语句①
private
static
$firstCount
= 0;
private
$lastCount
;
//构造函数
function
__construct()
{
$this
->lastCount =++self::
$firstCount
;
//使用 self
来调用静态变量 语句②
}
//打印 lastCount 数值
function
printLastCount()
{
(
$this
->lastCount );
}
}
//实例化对象
$obj
=
new
Counter();
$obj
->printLastCount();
//执行到这里的时候,程序输出 1
?>
这里要注意两个地方语句①和语句②。我们在语句①定义了一个静态变量
$firstCount
,那