php中构造函数与析构函数详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-07 12:25:50 浏览: 评论:0
在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考.
析构函数
php析构函数的作用刚好和构造函数相反,构造函数是在对象实例化时自动执行,而析构函数在对象被销毁时自动执行.
默认情况下,php仅释放对象属性所占用的内存,并不销毁对象相关的资源,而利用析构函数在使用一个对象之后执行代码来清除内存,并将对象从内存中销毁.析构函数__destruct()结构形式如下:
实例代码如下:
- function __destruct(){
- /* class initialization code */
- }
析构函数是由系统自动调用,不能带参数.
实例代码如下:
- <?php
- class des{
- function __destruct(){
- echo "运行结束,执行析构函数";
- }
- }
- $p=new des(); /* 实例化类 */
- $sum=0;
- for($i=0;$i<10;$i++){
- $sum=$sum+$i;
- echo $sum ."<br>";
- }
- ?>
析构函数的调用
php如何调用析构函数?当php脚本不再与对象相关时将调用析构函数.如果要明确地销毁一个对象调用析构函数,可以给指向对象的变量不分配任何值,通常将变量赋值为NULL或者用unset()函数.
实例代码如下:
- <?php
- class des{
- function __destruct(){
- echo "对象被销毁,执行析构函数<br>";
- }
- }
- $p=new des(); /* 实例化类 */
- echo "程序开始<br>";
- unset($p); /* 销毁变量$p */
- echo "程序结束";
- ?>
构造函数
我们在使用类的过程中,有时需要立即为实例化对象的多个字段父子,如果通过手工,会带来很多不可预测的问题,而如果在对象创建过程中自动执行,则会带来很多方便.
php构造函数作用就是当类被实例化时,会自动执行的函数,又称为构造函数.构造函数的声明和其它函数一样,知识构造函数的名称是“__construct”固定的名称,其结构形式如下:
实例代码如下:
- function __construct([argument1,argument2,argument3]){
- /* class initialization code */
- }
实例代码如下:
- <?php
- class user{
- public $name;
- private $password;
- private $login;
- public function __construct($name,$password){
- $this->name=$name;
- $this->password=$password;
- $this->login=time();
- }
- function getlogin(){
- return(date('M d,Y',$this->login));
- }
- }
- $user=new user('Marry','888888');
- echo "用户名: ". $user->name. "<br>";
- print("访问时间". $user->getlogin());
- ?>
调用父类构造函数
构造函数可以被子类调用,php调用父类构造函数时必须使用parent关键字,否则不会自动调用.
实例代码如下:
- <?php
- class task1{
- public function __construct(){
- echo "today is Monday". "<br>";
- }
- }
- class task2 extends task1{
- function __construct(){
- parent::__construct(); /* 调用父类构造函数 */
- echo "I must work!";
- }
- }
- new task2;
- ?>
Tags: php 构造函数 析构函数
- 上一篇:PHP中eval()的小技巧
- 下一篇:php函数详解之学习笔记
相关文章
- ·PHP校验ISBN码的函数(2013-11-11)
- ·PHP不缓存数据头(2013-11-11)
- ·PHP采集程序中常用的函数(2013-11-11)
- ·PHP多重判断删除文件函数(2013-11-11)
- ·php中文汉字截取函数(2013-11-12)
- ·如何用php创建与删除多级目录函数(2013-11-14)
- ·什么函数能够把文件从一个目录下转移到另外一个目录下?(2013-11-27)
- ·php_admin_value(php_admin_flag)和php_value(php_flag)(2013-11-27)
- ·使用PHP重新实现PHP脚本引擎内置函数(2013-11-27)
- ·计算一个程序的执行时间的函数(2013-11-27)
- ·php curl_init函数用法(2013-11-28)
- ·php md5 与md5_file区别详细说明(2013-11-28)
- ·php session_cache_limiter session_cache_expire等函数(2013-11-29)
- ·php var_dump简单测试(2013-11-29)
- ·php file_exists无效解决办法(2013-11-29)
- ·强大的php检查文件类型(2013-11-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)