我看了别人写了一个类:
1 class db{
2
3 private $link = null;
4
5 public __construct($db_host, $db_user, $db_pwd) {
6
7 $this->link = mysql_connect($db_host, $db_user, $db_pwd);
8 }
9
10 public __destruct() {
11
12 if ($this->link)
13 {
14 @mysql_close($this->link);
15 }
16 }
17
18 }这样写__destruct里面的代码永远也不会被执行是吧,因为在__construct里面的$link只有在自己函数范围内可见,我这种想法对么。还有,我看到有一些函数,直接return %this,这到底返回了啥子哦
疑问1:_destruct析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
疑问2:this就是指向当前对象实例的指针,不指向任何其他对象或类。
代码注解:
class UserName
{
//定义属性
private $name;
//定义构造函数
function __construct( $name )
{
$this->name = $name; //这里已经使用了this指针
}
//析构函数
function __destruct(){}
//打印用户名成员函数
function printName()
{
print( $this->name ); //又使用了this指针
}
}
这里有一文讲解了 PHP this,self 和 parent 关键字 详解。看看能不能解决你的问题。