`
edwardpro
  • 浏览: 300413 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

<![CDATA[谈谈PHP为什么不支持重载和多态]]>

阅读更多
突然又想到了,这个问题,不要说我为什么老是用别人的标准来衡量它,道理很简单,因为我要用,最近在对zend framework做一次构架改造,遇到了需要覆盖成员和重载的难题,但是很可惜php是不支持的,只能写很多不同名方法,这看起来也不错,但是仔细想想这样代码的冗余度是极高的,也不利于接口应用。

说道这个问题,就要说说我很早以前发现的php bug,最后的结论php具有执行的不确定性,当它找不到默认构造的时候的时候(也就是写入一个参量不存在的php构造方法),这个时候php依然执行了它的默认无参数构造,而这在程序中会引起很大的问题。这个问题我当时从php的bug report得到的回答这是对的,我是错的,我不知道我对对象的理解是否有问题,我只知道它执行了一个我不期望的方法,但这被认为是对的,原因就是当在没有重载概念时当然是对的,为什么不对?因为只要参数不违法就能执行,php似乎对参量控制都很松(这种松是我无法忍受的),php最大的问题就是false是没有值,不是null就是空,这是一个很奇妙的问题,等于在php中机会不会出错的,这也就能解释为什么它不能重载,因为当他发现方法没有时他根本无法判断这到底是不存在还是类没有初始化,因为他们得到的结果都是一样的!而我不知道为什么这么一个愚蠢的问题为什么得不到修正,至少我知道的语言里没有这样false不知道是啥的语言,php就是这样的。牢骚就不说了,写点难看的具有php特色的代码去。
分享到:
评论
2 楼 亚飞正传 2013-10-30  
您好,你以前是在PChome工作的?
1 楼 亚飞正传 2013-10-30  
您好,你以前是在PChome工作的?

相关推荐

    JAVA对象转换成XML(CDATA)

    XML 元素中,"&lt;" 和 "&" 是非法的。"&lt;" 会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该...[CDATA[文本内容]]&gt;CDATA的文本内容中不能出现字符串“]]&gt;”,另外,CDATA不能嵌套。

    微信开发文档

    [CDATA[toUser]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[fromUser]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;1348831860&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;![CDATA[this is a test]]&gt;&lt;/...

    微信时间开发源码

    [CDATA[%s]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[%s]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;%s&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[%s]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;![CDATA[%s]]&gt;&lt;/Content&gt; &lt;FuncFlag&gt;0&lt;/FuncFlag&gt; &lt;/xml...

    省市区表,xml省市区

    自己将数据导入到xml中的,希望有需要的朋友可以自己下载,格式为&lt;!DOCTYPE PCAroot[ &lt;!ELEMENT PCAroot (Province*)&gt; &lt;!ELEMENT Province (City*)&gt; &lt;!ELEMENT City (Area*)&gt; &lt;!ELEMENT Area (#PCDATA)&gt; &lt;!...

    Mybatis 中的&amp;lt;![CDATA[ ]]&amp;gt;浅析

    本文给大家解析使用&lt;![CDATA[ ]]&gt;解决xml文件不被转义的问题, 对mybatis 中的&lt;![CDATA[ ]]&gt;相关知识感兴趣的朋友一起看看吧

    上传xml文档

    &lt;preconditions&gt;&lt;![CDATA[1.使用udp_bi用户在PLSQL正常登陆UAT数据库&lt;br&gt; (UAT数据库IP: 10.0.13.178)&lt;br&gt; 2.数据库脚本已下载至本地环境]]&gt;&lt;/preconditions&gt;&lt;importance&gt;&lt;![CDATA[2]]&gt;&lt;/importance&gt;&lt;steps&gt; &lt;step&gt;

    asp微信开发者回复代码

    "&lt;Description&gt;为企业提供专业的、全面的、量身定制的企业业管理咨询、员工培训、企业品牌营销策划、竞争性行业分析、IT信息咨询、酒店以及职工餐饮托管等服务。" &_ "&lt;/Description&gt;" &_ "&lt;PicUrl&gt;&lt;![CDATA...

    一个简单的xml文件

    ATTLIST 电话 类别 CDATA "移动电话"&gt; ]&gt; &lt;联系人列表&gt; &lt;说明&gt;&content;&lt;/说明&gt; &lt;联系人&gt; &lt;姓名&gt;刘保文&lt;/姓名&gt; &lt;ID&gt;201003101115&lt;/ID&gt; &lt;公司&gt;腾飞汇通有限公司&lt;/公司&gt; &lt;电话 类别="移动电话"&gt;18993380967&lt;/...

    C#读取XML的CDATA节点内容实例详解

    &lt;srvver&gt;1.0&lt;/srvver&gt; &lt;srvcode&gt;000&lt;/srvcode&gt; &lt;payload&gt; &lt;param type=XML key=data&gt; &lt;![CDATA[ &lt;Response&gt; &lt;Execution&gt; &lt;Status code=0 sql_code=0 description=执行成功!/&gt; &lt;/Execution&gt; &lt;ResponseContent...

    zyXML解析类模块源码

    4、支持 CDATA 。5、开源(如果有任何问题可以自己修改)。缺点:。1、加载速度稍微逊色于支持库,但是查询速度很快。2、不支持DTD,也就是类似于如下的节点。 &lt;!DOCTYPE note [。 &lt;!ELEMENT note (to,from,...

    android SaxParser 解析 CDATA

    android 使用saxparser 解析&lt;![CDATA[ ]]&gt;标签数据。 见附件实例

    异构系统xml交互程序

    [CDATA[10]]&gt;&lt;/LoginTimeOut&gt; &lt;QueryTimeOut&gt;&lt;![CDATA[3600]]&gt;&lt;/QueryTimeOut&gt; 原始set.xml数据库连接节点缺少以上两个节点请添加,LoginTimeOut为数据库连接超时时间,单位秒,QueryTimeOut为SQL语句执行超时时间...

    微信小程序支付(已调试通过).rar

    微信小程序支付JSAPI交易类型 已通过测试 返回例子如下: &lt;xml&gt;&lt;return_code&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/return_code&gt; &lt;return_msg&gt;&lt;![CDATA[OK]]&gt;&lt;/return_msg&gt; &lt;result_code&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/result_code&gt;

    php生成xml时添加CDATA标签的方法

    主要介绍了php生成xml时添加CDATA标签的方法,实例讲述了php操作XML文件的技巧,非常具有实用价值,需要的朋友可以参考下

    微信JSAPI支付返回:CDATA[openid is invalid],openid无效

    [CDATA[FAIL]]&gt;&lt;/return&gt; &lt;return&gt;&lt;![CDATA[openid is invalid]]&gt;&lt;/return&gt; &lt;/xml&gt; 原因是,传有效过去不是的opendid。不小心看错了,把用户id 当做openid传过去了。   当统一下单成功,会返回以下格式的...

    JS动态可控制左右滚动的图片

    [CDATA[//&gt;&lt;!-- var scrollPic_02 = new ScrollPic(); scrollPic_02.scrollContId = "ISL_Cont_1"; //内容容器ID scrollPic_02.arrLeftId = "LeftArr";//左箭头ID scrollPic_02.arrRightId = "RightArr"; //...

    xml入门教程/xml入门教程

    字符数据中,不能含有&,&lt;,&gt;,',",需要采用实体引用的方式 字符数据段 &lt;![CDATA[字符数据]]&gt; 引用 &lt;!ENTITY 引用名 "......."&gt; 3)杂项 处理指令 XML为其它应用程序准备的接口。 &lt;?处理...

    [示例][PHP]HTML5解析和序列化的PHP库.zip

    [CDATA[Because we can.]]&gt; &copy; &lt;/body&gt;&lt;/html&gt; HERE; $html5 = new HTML5(); $dom = $html5-&gt;loadHTML($html); print "Converting to HTML 5\n"; $html5-&gt;save($dom, fopen("php://stdin", 'w'));

    android程序读取网上xml文件

    用android程序读取网上xml文件,这个xml文件中包含了&lt;!CDATA&gt;

Global site tag (gtag.js) - Google Analytics