什么是面向对象?面向对象的简单了解!返回列表
上传时间: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-fpm 基础介绍
- 下一篇:COOKIE、SESSION之彻底搞定!