解决PHP4.0 和 PHP5.0类构造函数的兼容问题

在 PHP5.0 以上版本里,还兼容了 4.0 版本的构造函数的定义规则。如果同时定义了4.0的构造函数和 __construct()函数,则__construct() 函数优先。
为了使类代码同时兼容 PHP4.0 和 5.0,可以采取以下的方式:


代码如下:

<?php
class MyClass {
 function __construct() { //for PHP5.0
  echo 'this is class2 construct';
 }
 // 为了使类代码同时兼容 PHP4.0 和 5.0
 function MyClass() { //for PHP4.0
  $this->__construct();
 }
}
$c3 = new MyClass;
?>

(0)

相关推荐

  • Php 构造函数construct的前下划线是双的_

    定义和用法 __construct() 函数创建一个新的 SimpleXMLElement 对象. 如果成功,则该函数返回一个对象.如果失败,则返回 false. 语法__construct(data,options,is_url,ns,is_prefix) 参数 描述 data 必需.形式良好的 XML 字符串或 XML 文档的路径或 URL. options 可选.规定附加的 Libxml 参数. is_url 可选.规定 data 参数是否是 URL.默认是 false. ns 可选. i

  • php基础知识:类与对象(3) 构造函数和析构函数

    构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作.  注意:  如果子类中定义了构造函数则不会暗中调用其父类的构造函数.要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct().(??和其他语言明显不同??) 例10.8.使用新标准的构造函数 class BaseClass {   function __construct() {       prin

  • 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

  • PHP 类与构造函数解析

    ----类的创建---- php使用关键字class创建一个类,并且使用一对大括号 如: class name{ public $n=""; private $u=""; public function name() { $n="233"; $u="23333"; } public function rename($newn){ $this->n=$newn;//this表示这个类 } } 结尾不打分号.则$n,$u为字

  • PHP中构造函数和析构函数解析

    构造函数 void __construct ([ mixed $args [, $... ]] ) PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作. Note: 如果子类中定义了构造函数则不会隐式调用其父类的构造函数.要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct().如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承(假如没有被定义为 p

  • php构造函数的继承方法

    本文实例讲述了php构造函数的继承方法.分享给大家供大家参考.具体如下: 第一种情况:子类没有定义构造函数时,默认继承.例子: <?php class A{ public $name; function __construct(){ echo $this->name="小强"; } } class B extends A{ } $bb = new B(); ?> 输出结果:小强 第二种情况:子类定义了构造函数,则不会被继承.实例: <?php class A{

  • ThinkPHP中__initialize()和类的构造函数__construct()用法分析

    本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct().分享给大家供大家参考.具体分析如下: thinkphp中的__construct是不可以随便用的,因为你的模块类继承上级类,上级类有定义好的; 1.__initialize()不是php类中的函数,php类的构造函数只有__construct(). 2.类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化.

  • 解决PHP4.0 和 PHP5.0类构造函数的兼容问题

    在 PHP5.0 以上版本里,还兼容了 4.0 版本的构造函数的定义规则.如果同时定义了4.0的构造函数和 __construct()函数,则__construct() 函数优先.为了使类代码同时兼容 PHP4.0 和 5.0,可以采取以下的方式: 复制代码 代码如下: <?phpclass MyClass { function __construct() { //for PHP5.0  echo 'this is class2 construct'; } // 为了使类代码同时兼容 PHP4.

  • PHP5.0正式发布 不完全兼容PHP4 新增多项功能

    期待已久的PHP5终于在当地时间7月13日正式发布了.无论对于PHP语言本身还是PHP的用户来讲,PHP5发布都算的上是一个里程碑式的版本.在PHP5发布之前的各个PHP版本就以简单的语法.丰富的库函数以及极快的脚本解释执行速度,赢得了许多开发者的青睐,几乎成了*NIX平台上首选的WEB开发语言.然而,站在语言本身角度,PHP的语法,特别是OO方面的语法设计并不完善,当然这和PHP语言的作者一开始的设计目的有关. 众所周知,PHP最开始只是一个用Perl写成的一个模板系统,其后的发展思路也是尽可

  • Windows下的PHP5.0安装配制详解

    PHP5包括以下一些重要的特征: ·支持新的对象模型和许多新特点的Zend引擎. ·完全重新编写了XML支持,扩展性能围绕着优秀的libxml2库(http://www.xmlsoft.org/). ·新的SimpleXML扩展,PHP对象轻松访问操作. ·全新的内建SOAP扩展,支持Web服务的交换. ·增加命名为MySQLi的了MySQL的扩展,支持MySQL4.1及以后版本的功能. ·绑定SQLite数据库. ·极大地改进流的设计,包括通过流操作底层的socket 首先,点这里下载PHP5

  • Windows下的PHP5.0详解

    PHP5包括以下一些重要的特征:  ·支持新的对象模型和许多新特点的Zend引擎. ·完全重新编写了XML支持,扩展性能围绕着优秀的libxml2库(http://www.xmlsoft.org/). ·新的SimpleXML扩展,PHP对象轻松访问操作. ·全新的内建SOAP扩展,支持Web服务的交换. ·增加命名为MySQLi的了MySQL的扩展,支持MySQL4.1及以后版本的功能. ·绑定SQLite数据库. ·极大地改进流的设计,包括通过流操作底层的socket 首先,点这里下载PHP

  • PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析

    本文实例分析了PHP5.0~5.6 各版本兼容性cURL文件上传功能.分享给大家供大家参考,具体如下: 最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件.踩坑若干,够一篇文章了. 重要警告 没事不要读PHP的官方中文文档!版本跟不上坑死你! 不同版本PHP之间cURL的区别 PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求. 传统上,PHP的cURL支持通

  • 解决Android Studio 3.0 butterknife:7.0.1配置的问题

    网上教程7.0大多数配置是这样compile 'com.jakewharton:butterknife:7.0.1' ,不知道他们用的Android Studio是多少版本,我用的3.0并没有成功,报错如下: Error:Execution failed for task ':app:javaPreCompileDebug'. Annotation processors must be explicitly declared now. The following dependencies on

  • c++类构造函数详解

    复制代码 代码如下: //一. 构造函数是干什么的 /*   类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数->由构造函数完成成员的初始化工作     eg: Counter c1; 编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter( )自动地初始化对象,初始化之后c1的m_value值设置为0 故:构造函数的作用:初始化对象的数据成员.*/ class Counter       {      public:       // 类Co

  • 详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用

    前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vuejs 2.0 + vuex 2.0 重写这个应用,其中最大的问题是使用 vue-cli 构建应用时遇到的问题.通过这些问题深入探索 vue 以及 vuex . 我对于框架的学习一直断断续续,最先接触的是 react,所以有一些先入为主的观念,喜欢 react 更多一点,尤其在应用的构建层面来说.之所以断断续续,是因为自己 JS 基础较弱,刚开始学习的

  • tensorflow2.0与tensorflow1.0的性能区别介绍

    从某种意义讲,tensorflow这个项目已经失败了,要不了几年以后,江湖上再无tensorflow 因为tensorflow2.0 和tensorflow1.0 从本质上讲就是两个项目,1.0的静态图有他的优势,比如性能方面,但是debug不方便,2.0的动态图就是在模仿pytorch,但是画虎不成反类犬. 为了对比1.0 与2.0 1. pip install tensorflow==2.0.0a0 2. 为了控制变量我把mnist保存到本地的mongodb 3. 两种网络结构是一样的 ip

  • webpack3.0升级4.0的方法步骤

    1.webpack 3.11升级4.26 为了提升打包效率,在webpack3.11基础之上做了升级,webpack4.0发布以来,零配置的webpack对项目本身提供的"打包"和"压缩"功能已经做了优化,如果在项目开始使用4.0而不用vue-cli的默认配置,遇到的问题或许能少一些. 2. 安装/升级依赖 这些依赖有的是在build过程中发现依赖有新的替换或者报错,逐步替换的,如果想遇到多个坑,可以先把webpack.webpack-cli升级到对应版本 devD

随机推荐