php构造函数的继承方法

本文实例讲述了php构造函数的继承方法。分享给大家供大家参考。具体如下:

第一种情况:子类没有定义构造函数时,默认继承。例子:

<?php
class A{
 public $name;
 function __construct(){
 echo $this->name="小强";
 }
}
class B extends A{

}
$bb = new B();
?>

输出结果:小强

第二种情况:子类定义了构造函数,则不会被继承。实例:

<?php
class A{
 public $name;
 function __construct(){
 echo $this->name="小强";
 }
}
class B extends A{
 function __construct(){
 echo "BBBBBB子类";
 }
}
$bb = new B();
?>

输出结果:BBBBBB子类

第三种情况:如果需要调用父类的构造函数,则可以使用:parent::父类函数 或 父类名::父类函数。

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • 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为字

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

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

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

  • 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 构造函数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构造函数的继承方法

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

  • 基于构造函数的五种继承方法小结

    1.使用call或apply绑定构造函数 animal.apply(this.arguments) 2.使用prototype属性 Cat.prototype = new Animal(); Cat.prototype.constructor = Cat; var cat1 = new Cat("大毛","黄色"); alert(cat1.species); // 动物 3.直接集成prototype属性 function Animal(){ } Animal.pr

  • Javascript面向对象编程(三) 非构造函数的继承

    今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". 复制代码 代码如下: var Chinese = { nation:'中国' }; 还有一个对象,叫做"医生". 复制代码 代码如下: var Doctor ={ career:'医生' } 请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个&

  • Javascript面向对象编程(二) 构造函数的继承

    今天要介绍的是,如何生成一个"继承"多个对象的实例. 比如,现在有一个"动物"对象的构造函数, 复制代码 代码如下: function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数, 复制代码 代码如下: function Cat(name,color){ this.name = name; this.color = color; } 怎样才能使"猫"继承&

  • javaScript面向对象继承方法经典实现

    JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来给了程序员很大的自由,也带来了一些缺陷. 虽然JavaScript不算是一门面向对象的语言.但是我们可以模仿着其他语言实现面向对象的方式来实现JavaScript的面向编程. 下面是JavaScript教程中非常经典的继承方法. 复制代码 代码如下: //定义一个Pet对象.通过这一个名称和数量的腿

  • Javascript非构造函数的继承

    一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". 复制代码 代码如下: var Chinese = { nation:'中国' }; 还有一个对象,叫做"医生". 复制代码 代码如下: var Doctor ={ career:'医生' } 请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象? 这里要注意,这两个对象都是普通对象

  • javascript的几种继承方法介绍

    1.原型链继承:构造函数.原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.确认原型和实例之间的关系用instanceof. 原型链继承缺点:字面量重写原型会中断关系,使用引用类型的原型,并且子类型还无法给超类型传递参数 function Parent(){ this.name='mike'; } function Child(){ this.age=12; } //儿子继承父亲(原型链) Child.prototype

  • 浅谈JS继承_借用构造函数 & 组合式继承

    2.借用构造函数 为解决原型中包含引用类型值所带来的问题, 我们使用一种叫做 借用构造函数(constructor stealing)的技术(又叫伪造对象或经典继承). 这种技术的基本思想:在子类构造函数内部调用超类型构造函数. 通过使用apply()和call()方法可以在新创建的子类对象上执行构造函数. function SuperType(){ this.colors = ["red", "blue", "green"]; } functi

  • js的继承方法小结(prototype、call、apply)(推荐)

    js的原型继承 --  prototype 先说下什么是prorotype? js中,俗话说"一切皆对象".用new 出来的都是函数对象:否则就是普通对象 函数对象都有prototype(原型对象):而普通对象则只有__proto__(原型指针) 函数对象的一个特点:可以实现不同类之间的方法继承 函数的子类可以共享父类的方法,而父类不能想用子类的方法 eg: (prototype的继承) //创建父类函数对象 function Personal(name, age) { this.na

  • JavaScript类的继承方法小结【组合继承分析】

    本文实例讲述了JavaScript类的继承方法.分享给大家供大家参考,具体如下: 在JavaScript 里,被继承的函数称为超类型(父类,基类也行,其他语言叫法),继承的函数称为子类型(子类,派生类).继承也有之前问题,比如字面量重写原型会中断关系,使用引用类型的原型,并且子类型还无法给超类型传递参数. 为了解决引用共享和超类型无法传参的问题,我们采用一种叫借用构造函数的技术,或者成为对象冒充(伪造对象.经典继承)的技术来解决这两种问题. function aObj(){ this.name

随机推荐