PHP基础篇 php构造方法到底有什么用?

按书中的解释:构造方法是在生成对象时自动执行的成员方法,作用是初始化对象。现在,有两个问题如下:
初始化对象是什么意思?
直接将参数写到想要实现功能的成员方法中,运行的结果和有构造方法的一样,代码也没看到简化在哪儿,所以我就不明白构造方法的意义是什么?

 

问题一回答:对象初始化时候提供默认值,然后调用对象方法时候可以免去再次赋值
问题二回答设计模式中的单例模式需要私有的构造方法.

撸代码

<?php
class SinglePHP{
    private static $_instance;
    private function __construct($conf){        
        /* * */
    }
    public static function getInstance($conf){        
        if(!(self::$_instance instanceof self)){            
            self::$_instance = new self($conf);        
        }        
            return self::$_instance;    
   }
}

一说到php魔术方法,最先想到的就是构造和析构函数,那么,他们到底有什么神奇的地方,而被称为魔术方法,并被当做代表人物呢

以前,我也只是知道一些理论知识,今天,就和大家一起分析一下它们到底有什么作用:

一. 构造函数:

 __construct( ): 有构造函数的类会在每次创建新对象时调用此函数,所以可以在此函数内做一些使用对象之前的初始化。

我最早接触到这个函数是在写登录的时候,会在公共控制器里创建一个构造函数,里面写验证登录session是否存在的逻辑代码,然后在每个控制器都继承这个公共控制器,会首先执行这个构造函数验证是否登录成功。(如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。)

构造函数就是在实例化类的时候就被运行的函数,可以有参数,也可以没有参数。构造函数主要用来在创建对象时初始化对象 即为对象成员变量赋初始值,比如说你的MyPc类,定义了$name,那么如果没有构造函数你在初始化MyPc类的时候$name的值就是空的,你可以定义一个构造函数来给$name一个值,因为很多时候我们并不允许某些对象变量的值是空的
 

二.析构函数:

__distruct( ): 1、PHP页面加载完成后,2、unset()类,3、变量指向别的对象或值时,4、exit()时被调用。

当PHP决定你的脚本不再与对象相关时,析构函数将被调用
 


<?php
    class Person{ //定义一个叫Person的类
    public  $name; //声明共有的属性:名字
    public function say(){ //声明共有的方法:说话
        echo 'saying';
    }       
    public function __construct(){ //固定的__construct声明构造函数
        echo 'construct'; //在对象创建时输出
    }
    public function __destruct(){
        echo 'destruct'; //对象销毁时输出
    }
}
    $a =new Person(); //输出construct
    //待代码结束后输出 destruct
?>

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值