加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

无法覆盖PHP类/函数

发布时间:2020-12-13 22:08:46 所属栏目:PHP教程 来源:网络整理
导读:我无法在我的本地Ubuntu测试LAMP服务器上覆盖子类中的函数,但是当上载到Web服务器时,相同的代码会导致所需的覆盖. 原班级: class HandsetDetection { function HandsetDetection() { //code I wish to replace }} 我的课: class HandsetDetection_RespondH
我无法在我的本地Ubuntu测试LAMP服务器上覆盖子类中的函数,但是当上载到Web服务器时,相同的代码会导致所需的覆盖.

原班级:

class HandsetDetection {
    function HandsetDetection() {
        //code I wish to replace
    }
}

我的课:

class HandsetDetection_RespondHD extends HandsetDetection {
    function HandsetDetection() {
        //code I wish to use
    }
}

构造函数不参与.

在我的本地机器上使用的PHP版本是PHP 5.3.3-1ubuntu9.5与Suhosin-Patch(cli)(内置:2011年5月3日00:48:48)

覆盖成功的Web服务器上的PHP版本是5.2.17

你能想到为什么会这样吗?

解决方法

替换HandsetDetection()/通过为扩展类提供构造函数方法来阻止它被调用( Demo):

<?php

class A {

    function A() {
        echo "A() constructorn";
    }
}

class B extends A {

    function __construct() {
        echo 'B() constructor',"n";
    }

    function A() {
        echo "overriden";
    }

}

$x = new B();

事情应该好转.有关背景信息的说明,请参阅@edorians回答以及手册的链接等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读