php多个构造方法,PHP高级对象构建多个构造函数的使用方法
构造对象是PHP面向对象编程设计的重要一课,在最简单的情况下,普通的函数是足够的,但如果要进行更复杂的设计,函数可能没办法驾驭,本文讲述的是PHP高级对象构建多个构造函数的使用方法。
复制代码 代码如下:
class classUtil {//这是一个参数处理的类
public static function typeof($var){
if (is_object($var)) return get_class($var);//如果是对象,获取类名
if (is_array($var)) return "array";//如果是数组,返回"array"
if (is_numeric($var)) return "numeric";//如果是数字,返回"numeric"
return "string";//字符串返回 "string"
}
public static function typelist($args){
return array_map(array("self","typeof"),$args);//数组循环通过调用self::typeof处理$args中的每个元素
}
public static function callMethodForArgs($object,$args,$name="construct"){
$method=$name."_".implode("_",self::typelist($args));//implode 是把数组元素用"_"连接成一个字符串
if (!is_callable(array($object,$method))){//is_callable()函数测试$object::$method是不是可调用的结构
echo sprintf("Class %s has no methd '$name' that takes".
"arguments (%s)",get_class($object),implode(",",self::typelist($args)));
call_user_func_array(array($object,$method),$args);//call_user_func_array函数调用$object::$method($args)
}
}
}
class dateAndTime {
private $timetamp;
public function __construct(){//自身的构造函数
$args=func_get_args();//获取参数
classUtil::callMethodForArgs($this,$args);//调用参数处理类的方法
}
public function construct_(){//参数为空的时候
$this->timetamp=time();
}
public function construct_dateAndTime($datetime){//为类自身的时候
$this->timetamp=$datetime->getTimetamp();
}
public function construct_number($timestamp){//为数字的时候
$this->timetamp=$timestamp;
}
public function construct_string($string){//为时间型字符串时候
$this->timetamp=strtotime($string);
}
public function getTimetamp(){//获取时间戳的方法
return $this->timetamp;
}
}
?>
上面的方法说明了多个构造函数的使用。其实不管它们是字符、数字还是类,它们的处理方式都不同,这增强了代码的灵活性。想学习更多的知识,要多多关注爱站技术频道!
php多个构造方法,PHP高级对象构建多个构造函数的使用方法相关推荐
- Android调用WebService系列之对象构建传递
上一篇我们讲了如何封装Android调用WebService的能力,把上一章的类加入我们便有了与WebService通讯的能力.往往我们会遇到WebService调用是通过对象来进行实际交互调用的.于 ...
- java安全编码指南之:对象构建
文章目录 简介 构造函数的异常 Finalizer Attack 解决Finalizer Attack 使用final class 使用final finalize方法 使用flag变量 使用this ...
- 类与对象、引用传递、封装、构造方法、匿名对象笔记
类与对象 类与对象的基本概念 类:是抽象的概念集合,表示的是一个共性的产物,类中定义的是属性和行为(方法):(不能用) 对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属 ...
- 15高级链接构建策略和技巧,以提高您的SEO
链接建设仍然是SEO行业的白象.许多人宣称链接建设是垃圾邮件,死的,甚至对你的SEO有害.但是,链接建设仍然是基于性能的有效SEO策略的主要部分.如果执行得当,有助于提高自然搜索排名. 我最近在一次分 ...
- Java构造方法定义、对象实例化的过程、对象的引用和实体
Java构造方法定义: 一.在类中,构造方法是一个特殊的方法,当程序用某个类创建对象时,需要使用这个类中的构造方法进行创建: 如下演示: 通过 Structure_Method_Test() 构造方法 ...
- Apollo6.0代码Lattice算法详解——Part6:轨迹评估及碰撞检测对象构建
Apollo6.0代码Lattice算法详解--Part6:轨迹评估及碰撞检测对象构建 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc ...
- js_高级_对象、面向对象、构造函数、实例对象、原型、原型链
1.什么是对象 汽车不是对象是是一类事物,一辆汽车是对象. 2.什么是面向对象 3.面向对象的特点 案例来理解 面向过程 和 面向对象---打印出学生的成绩表 面向过程:如何做这件事情 ,把事情拆成 ...
- java构造方法重载_Java 重载、重写、构造函数的实例详解
Java 重载.重写.构造函数的实例详解 方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定 ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
最新文章
- 【JavaScript总结】JavaScript发展与学习内容
- pandas生成新的累积连乘数据列(cumprod)、pandas生成新的累积连乘cumprod数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累积连乘
- 中电信抢滩云计算 在上海开建“信息银行”
- WebForm服务器验证控件与前端js自定义验证共同使用
- 使用 Fluent API 配置/映射属性和类型
- PAT (Basic Level) 1058 选择题(模拟)
- zookeeper配置文件详解
- pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
- 记一次神奇的SQL查询经历,group by慢查询优化
- ojdbc14_g.jar与ojdbc14.jar区别
- 查询表中id相同的记录mysql_mysql – 从两个表中的ID相同的两个表中选择数据
- 微信开发api文档地址
- jupyter代码字体大小_Jupyter Notebook 更改字体、字体大小、行高
- AtCoder Beginner Contest 258 A~Ex 题解
- WPE1.3C的详细使用教程
- 【matplotlib + opencv】关于opencv和matplotlib绘制图像时,出现色差色偏的问题探讨,思考,解决。(深度学习数据包plt.imshow绘制的图像底色偏绿蓝偏黄)
- 武汉科技大学计算机科学与技术分数,2019武汉科技大学研究生分数线汇总(含2016-2019历年复试)...
- Texstudio 英文拼写检查功能出问题的解决方法
- 什么叫做石英表_石英表是什么意思?
- IDEA2020.1基于Maven开发spring cloud项目报错 程序包 com.xxx.xxx.xxx不存在
热门文章
- unity打包-1.打包安卓apk
- jQuery的animate()的scrollTop属性在iPad Safari上不起作用
- [转] the New Oracle BIEE PLUS intro
- Fescar 源码解析系列
- 论文阅读笔记-Glyce: Glyph-vectors for Chinese CharacterRepresentations
- 【Python 第16课】 字符串格式化
- 微信小程序:实现悬浮返回和分享按钮
- 计算机操作员技师考试内容,计算机操作员技师理论考试题库.doc
- Netty搭建Http2服务端并支持TLS传输加密
- 企业文档加密软件选择标准是什么