php面向对象-构造函数和析构函数详解
来源:互联网 发布:淘宝市场需求分析 编辑:程序博客网 时间:2024/06/10 04:13
php面向对象中构造函数(__construnct)和析构函数详解(__destruct)
//在实际运用中构造函数的作用可以用来给属相初始化值,或初始化操作,话不啰嗦,例子更能形象说明:
class homan{ public function __construct(){ echo "生成对象时系统自动调用__construct"; }}$object = new homan;//这里会自动输出这些内容:生成对象时系统自动调用__construct,因为在对一个类实例化时,系统会自动调用构造函数
class homan{ public $name = null; public $age = null; public function __construct($name, $age){ $this -> name = $name; $this -> age = $age; }}$object = new homan("张xxx","28");echo $object->name;//输出:张xxxecho $object->age;//输出:28;//因为在生成对象时,系统就会去自动调用类中的construct构造函数,并传递了两个参数,为属性进行初始化赋值
//构造函数调用父类的构造函数class god extends homan{ public $gender = "男"; public function __construct(){ parent::__construct(); }}//php中的子类不会自动调用父类的构造函数,需要我们自己去触发父类的构造函数,否则父类的构造函数在子类中会被覆盖!
//destruct析构函数详解//destruct析构函数在实际应用中,多数用于在对象销毁和数据库连接完毕之后自动关闭资源class destruct()}{public function __destruct(){echo "调用__destruct";}}$a = new destruct();$d = $c = $b = $a;unset($a);echo "<hr/>";//疑问:这里输出调用__destruct执行几次""?执行时字符串分别输出的位置?答:这里调用__destruct一次,在echo "<br />"的后面调用.疑问:这里可能很多初学者就会感到疑惑,__destruct不是在一个对象销毁时就自动调用吗,我unset($a)的时候为什么没调用呢.答:对象的传值方式默认是引用传递的,$d = $c = $b = $a;他们指向的是内存中的同一个对象,你unset($a)的时候,内存中的对象并没有销毁,还有另外几个指向这个对象,只有当你把指向内存中这个对象的变量全部unset掉这个对象才会被销毁:比如unset($a),unset($b),unset($c),$unset(d),
//问题一:
<pre name="code" class="php">$a = new destruct();$d = $c = $b = $a;unset($a);$b = false;$c = false;$d = true;echo "<hr/>";//这里会调用几次__destruct()函数,分别指出调用的位置,比如:之前输出几次,之后输出几次
0 0
- php面向对象-构造函数和析构函数详解
- php面向对象----构造函数和析构函数
- PHP面向对象-构造函数和析构函数
- PHP面向对象中的构造函数和析构函数
- Php面向对象--构造函数与析构函数
- PHP面向对象——构造函数、析构函数
- PHP面向对象——构造函数、析构函数
- php面向对象构造函数、析构函数的作用
- PHP面向对象——构造函数、析构函数
- PHP面向对象——构造函数、析构函数
- php 面向对象中构造函数(__contruct())和析构函数(__destruct())
- PHP的面向对象(三)构造函数和析构函数
- PHP面向对象1.3对象中成员的访问和构造析构函数
- 面向对象之构造函数和析构函数之一
- 面向对象中的构造函数和析构函数
- PHP面向对象的构造、析构函数
- PHP类与对象,构造函数和析构函数,加上this绑定详解
- 面向对象--PHP中类的继承和构造函数
- 图像中有关位图、色位图、以及所占字节数
- 奇偶个数
- OD笔记3 一次简单的尝试
- ibatis使用HashMap作为返回结果时DB2,ORACLE,MYSQL对KEY大小写不同
- 【02】台大机器学习L6 理论归纳
- php面向对象-构造函数和析构函数详解
- SecurityError:Error:#2148
- 两个进程如何共享内存
- 解决AndroidADT自带Eclipse编辑器不能自动代码提示的问题。
- aix 系统中的aioserver进程解释
- java类存在继承与实现
- Java 字符串类型16进制字面值转成字面值字节数据工具类
- OnGlobalLayoutListener获得一个视图的高度
- cacti