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

<![CDATA[就因为没有重载]]>

阅读更多
今天碰到一个很妖艳的问题,问题最后出在php没有重载又不报错,直接导致没有构造,使用的PHP版本是:5.2.5,我认为这是一个BUG。由于工作写的类不方便拿出来下面写一个完整的测试环境类给大家看:

abstract class father{
function father($a){
echo "class father";
}
}

class child extends father{
//子类构造函数(这是我错误的一个地方,但它导致了php另外一个错误)
function child(){
echo "test";
}
}

//run
$obj = new child('a');

执行后会发现父类的构造函数根本没有执行!但子类的构造由于参数不对也没有执行。
这个问题很明显:当我在子类中定义了构造函数,按照覆盖原理应该覆盖掉父类的一个构造函数,但是上述情况下由于已经定义了一个非默认参数的构造,这样子类定义的构造自动变成了重载而不是覆盖。而PHP又是不支持重载的,但这个时候应该报错,但神奇的事情发生了,PHP居然执行了,但是他显然没有执行我定义的父类的构造,而是执行了一个默认构造。这是其实产生了无法预知的错误,但PHP却莫名没有报错误,这应该是一个PHP的BUG。
我提交了一个bug report到php.net: http://bugs.php.net/44149


分享到:
评论

相关推荐

    JAVA对象转换成XML(CDATA)

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

    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...

    微信时间开发源码

    [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...

    微信开发文档

    [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;/...

    上传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;

    一个简单的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;/...

    asp微信开发者回复代码

    [CDATA["&fromusername&"]]&gt;&lt;/ToUserName&gt;" &_ "&lt;FromUserName&gt;&lt;![CDATA["&tousername&"]]&gt;&lt;/FromUserName&gt;" &_ "&lt;CreateTime&gt;"&now&"&lt;/CreateTime&gt;" &_ "&lt;MsgType&gt;news&lt;/MsgType&gt;" &_ "&lt;ArticleCount&gt;3&lt;/...

    省市区表,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;相关知识感兴趣的朋友一起看看吧

    微信接口ASP版

    [CDATA[gh_33bb5907f91e]]&gt;&lt;/ToUserName&gt; &lt;FromUserName&gt;&lt;![CDATA[ojLh3jkYtiszyEY-_sM_8yrNxSc4]]&gt;&lt;/FromUserName&gt; &lt;CreateTime&gt;1363231643&lt;/CreateTime&gt; &lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt; &lt;Content&gt;&lt;...

    Mobile Atlas Creator.exe

    [CDATA[http://t{$serverpart}.tianditu.cn/DataServer?T=cia_w&X={$x}&Y={$y}&L={$z}]]&gt;&lt;/url&gt; &lt;serverParts&gt;0 1 2 3 5 6 7&lt;/serverParts&gt; &lt;backgroundColor&gt;#00000000&lt;/backgroundColor&gt; &lt;/customMapSource&gt; &lt;/...

    异构系统xml交互程序

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

    android SaxParser 解析 CDATA

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

    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"; //...

    DIHtmlParser v7.9.0 for D10.1 Berlin

    Scripts: DIHtmlParser returns the contents between the &lt;SCRIPT&gt; and &lt;/SCRIPT&gt; tags as simple text. The surrounding HTML tags are reported separately. Styles: DIHtmlParser returns the contents between ...

    snoics-reptile 网页爬虫2.0

    &lt;&gt;]*\shref\s*=\s*["']?reptile-replace-string["'\s][^&lt;&gt;]*&gt;]]&gt;&lt;/value&gt; &lt;/property&gt; &lt;property name="getRegexUrl"&gt; &lt;!-- 提取最终URL --&gt; &lt;ref bean="ahrefGetRegexUrl"/&gt; &lt;/property&gt; &lt;/bean&gt;...

    快捷输入代码段mysnippet2

    &lt;Author&gt;Microsoft Corporation&lt;/Author&gt; &lt;SnippetTypes&gt; &lt;SnippetType&gt;Expansion&lt;/SnippetType&gt; &lt;/SnippetTypes&gt; &lt;/Header&gt; &lt;Snippet&gt; &lt;Declarations&gt; &lt;Literal&gt; &lt;ID&gt;type&lt;/ID&gt; &lt;ToolTip&gt;属性类型...

    Java解析和生成XML

    Java解析和生成XML

    Delphi 2010 Live Code templates Syntax

    &lt;description&gt;Description goes here&lt;/description&gt; &lt;author&gt;Author OfTheTemplate&lt;/author&gt; &lt;point name="NameOfPoint"&gt; &lt;text&gt;default text here&lt;/text&gt; &lt;hint&gt;hint for the user&lt;/hint&gt; &lt;/point&gt; &lt;code ...

    快捷输入代码段mysnippet1

    &lt;Author&gt;Microsoft Corporation&lt;/Author&gt; &lt;SnippetTypes&gt; &lt;SnippetType&gt;Expansion&lt;/SnippetType&gt; &lt;/SnippetTypes&gt; &lt;/Header&gt; &lt;Snippet&gt; &lt;Declarations&gt; &lt;Literal&gt; &lt;ID&gt;type&lt;/ID&gt; &lt;ToolTip&gt;属性类型...

Global site tag (gtag.js) - Google Analytics