• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312351

收藏总数310882

什么是面向对象?面向对象的简单了解!返回列表

上传时间:2015-02-02 内容关键字:什么是面向对象?面向对象的简单了解!


例子1

class Human{

public function __construct(){

echo "我诞生了
";

}

public function __destruct(){

echo "终究没有逆袭
";

}

}

$a = new Human();

$b = new Human();

$c = new Human();

$d = new Human();

unset($a);

$b = false;

$c = NULL;

echo "


";


问题:为什么最后一个’终究没有逆袭’出现在灰线下面?

答案:最后一次销毁是在php的页面执行完毕了,也就是echo "


";执行完了,系统才销毁 对象进行回收,此时的$d才销毁,这个时候才调用$d对象中的 echo "终究没有逆袭
";



例子2

class Human{

public function __destruct(){

echo "死了
";

}

}

$a = new Human();

$b = $c = $d = $a;

unset($a);

echo "


";


问题:输出结果是什么?为什么?

答案:输出横线和横下下面 "死了",因为当unset($a)后,由于还有$b,$c,$d依旧指向这个对 象,所以这个对象并没有因为$a的销毁而销毁,直到页面运行完毕以后才由系统自动销毁。


例子3

class Human{

public function __destruct(){

echo "死了
";

}

}

$a = $b = $c =new Human();

unset($a);echo "a
";

unset($b);echo "b
";

unset($c);echo "c
";

echo "


";


问题:输出为什么?为什么?

答案:输出如下图:

注销变量$a后输出a,注销$b后输出b, 但是注销$c后,对象没有其他变量指向它了所以跟着 $c的注销也销毁了,而这个时候调用了析构函数,输出了”死了” ,接着输出c和横线。


 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家