`

php实现多构造器的类

    博客分类:
  • PHP
阅读更多
有时候实例化类时,需要根据构造方法的参数个数进行初始化不用的内容,这有点像php函数或方法的可选参数:
<?php 
class A { 
    public function __construct() { 
        $a = func_get_args(); 
        $i = func_num_args(); 
        if (method_exists($this,$f='__construct'.$i)) { 
            call_user_func_array(array($this,$f),$a); 
        } 
    } 
    
    public function __construct1($a1) { 
        echo '__construct with 1 param called: '.$a1.PHP_EOL; 
    } 
    
    public function __construct2($a1,$a2) { 
        echo '__construct with 2 params called: '.$a1.','.$a2.PHP_EOL; 
    } 
    
    public function __construct3($a1,$a2,$a3) { 
        echo '__construct with 3 params called: '.$a1.','.$a2.','.$a3.PHP_EOL; 
    } 
} 
$o = new A('sheep'); 
$o = new A('sheep','cat'); 
$o = new A('sheep','cat','dog'); 

// 结果: 
// __construct with 1 param called: sheep 
// __construct with 2 params called: sheep,cat 
// __construct with 3 params called: sheep,cat,dog 
?> 
0
7
分享到:
评论

相关推荐

    PHP实现的构造sql语句类实例

    主要介绍了PHP实现的构造sql语句类,结合实例形式分析了PHP针对常用SQL语句的动态构造与生成技巧,需要的朋友可以参考下

    使用Laravel中的查询构造器实现增删改查功能

    上一篇介绍了如何在windows环境下跑一个 laravel 项目,这一篇写如何使用 laravel 中的 查询构造器 实现增删改查。 读这篇文章时我默认你已拥有如下知识: 了解php的基础语法 了解数据库设计 了解常用的sql查询 ...

    php单例模式实现(对象只被创建一次)

    单例类至少拥有以下三种公共元素:  必须拥有一个构造函数,并且必须被标记为private。 拥有一个保存类的实例的静态成员变量。 拥有一个访问这个实例的公共的静态方法 具体使用方面,我在下面php实例中注释的很...

    Thinkphp5第六讲:数据库操作之查询构造器

    查询构造器,基于PDO实现的,可以更方便执行数据库的操作,对不同的数据库驱动都是统一的语法,同时免于SQL注入,安全性较高。解释:我们开发不同项目时,因项目需求会选择不同的数据库,常用数据库有mysql、oracle...

    基于PHP和PDO的ORM框架

    支持原生查询和查询构造器;自动参数绑定和预查询;简洁易用的查询功能,强大灵活的模型用法;支持预载入关联查询和延迟关联查询;支持多数据库及动态切换;支持MongoDb;支持分布式及事务;支持断点重连;支持JSON...

    PHP程序开发范例宝典III

    实例184 用户身份验证类的实现 289 实例185 图片的分栏显示 291 7.2 PHP操纵SQL Server数据库 292 实例186 通过ADO方式连接SQL Server数据库 292 实例187 通过mssql_connect()函数连接SQL Server数据库 ...

    PHP教程 初级教程

    PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译...

    Laravel的PHP验证库.zip

    Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP...Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。

    PHP和MySQL Web开发第4版pdf以及源码

    6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章 第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件...

    php网络开发完全手册

    5.4.2 传统的构造函数 73 5.4.3 PHP类中的一些特殊方法 74 5.5 类的引用、扩展与继承 75 5.5.1 类的引用 75 5.5.2 类的扩展与继承 76 5.6 操作与调用 77 5.6.1 静态类的调用 77 5.6.2 实例类型的判断方法instanceof ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

     《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...

    PHP和MySQL WEB开发(第4版)

    6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章 第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件商店应用...

    php递归json类实例

    本文实例讲述了php递归json类的实现方法。... //构造器  public function json($array)  {  if(!is_array($array)) return false;  $this-&gt;Arr = $array;  }  //解析主函数  public function MainA

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

     《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 ...

    (全)传智播客PHP就业班视频完整课程

    9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 ...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 ...

    php-cfg:PHP中的控制流图实现

    控制流程图(CFG)的纯PHP实现,带有静态单一分配(SSA)形式的指令。 所使用的SSA构造算法基于Braun等人的“简单有效的静态单项分配形式构造”。 该算法直接从抽象语法树构造SSA表单,而无需先经过非SSA IR。 ...

    PHP和MySQL Web开发第4版

    6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章 第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件...

Global site tag (gtag.js) - Google Analytics