`
liboxlu
  • 浏览: 63320 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

php同名构造函数和__construct构造函数的共存问题

PHP 
阅读更多
    php4以前的版本中,类的构造函数即是类的同名函数,而到了php5类的构造函数多了一个__construct魔法函数,那当这两个同时存在时,构造实例时调用的到底是哪个函数呢?
    有疑问就直接敲代码来验证答案:
    1、两个函数都存在的情况下
<?php
class A{
		var $str = "construct";
	        function __construct(){
			$this->str = "construct";
		}	
		function A(){
			$this->str = "A";	
		}
}
$a = new A();
echo $a->str;
?>

运行结果输出是construct
这里如果__construct(){}不设置值时,其输出结果也为空,并不会是A。
2、如果魔法函数不存在时
<?php
class A{
		var $str = "construct";
	        	
		function A(){
			$this->str = "A";	
		}
}
$a = new A();
echo $a->str;
?>

输出结果为A,
这说明魔法函数优先级要大于同名函数,两者同时存在时只调用魔法构造函数。
分享到:
评论

相关推荐

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

    本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct()。分享给大家供大家参考。具体分析如下: thinkphp中的__construct是不可以随便用的,因为你的模块类继承上级类,上级类有定义好的; 1、__...

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

    如果同时定义了4.0的构造函数和 __construct()函数,则__construct() 函数优先。为了使类代码同时兼容 PHP4.0 和 5.0,可以采取以下的方式:复制代码 代码如下:&lt;?phpclass MyClass { function __construct() { /...

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

    要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承(假如没有被定义为 private 的话)。 Example#1使用新标准的构造函数 ...

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

    构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 注意: 如果子类中定义了构造函数则不会暗中...

    C++默认构造函数的问题

    C++ defaul construct :缺省构造函数(默认构造函数) ...  我们通常说的派生类和基类,我们调用派生类的自定义的构造函数的时候,派生类会自动调用基类中的default construct函数,而不能调用基类中的其他构造函

    ThinkPHP中类的构造函数_construct()与_initialize()的区别详解

    主要介绍了ThinkPHP中类的构造函数_construct()与_initialize()的区别,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

    构造函数继承.关于java

    构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承

    php构造函数的继承方法

    本文实例讲述了php构造函数的继承方法。分享给大家供大家参考。具体如下: 第一种情况:子类没有定义构造函数时,默认继承。例子: &lt;?php class A{ public $name; function __construct(){ echo $this-&gt;name...

    2010年最新PHP类的精缩归纳

    适合新手的 ...知识点:在PHP4中也提供了构造函数,但使用的是与类同名的类方法,在PHP5仍能兼容这种做法,当一个类中没有包含__construct时,会查找与类同名的方法,如果找到,就认为是构造函数,如下:

    php构造函数实例讲解

    当函数与类同名时,这个函数将成为构造函数。如果一个类没有构造函数,则调用基类的构造函数,如果有的话,则调用自己的构造函数如a.php一个class a类:复制代码 代码如下:&lt;?phpclass a{ function __construct()...

    polyfit.zip_construct graph_polyfit_polyfit函数图形_曲线拟合_最小二乘法

    polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线...曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。

    PHP 类与构造函数解析

    —-类的创建—- php使用关键字class创建一个类,并且使用一对大括号 ...name()为构造函数(__construct()也可定义构造函数,详见下文),可以为字段赋值;rename()为方法。 —-字段与方法—- 比较 $obj=new name

    C++语法详解之封装、构造函数、析构函数

    析构函数(方法)作用和构造方法正好相反,是对象被销毁之前最后一个被对象自动调用的方法。是PHP5中新添加的内容作用是用于实现在销毁一个对象之前执行一些特定的操作,诸如关闭文件和释放内存等。 下面在通过具体...

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

    定义和用法 __construct() 函数创建一个新的 SimpleXMLElement 对象。 如果成功,则该函数返回一个对象。如果失败,则返回 false。 语法__construct(data,options,is_url,ns,is_prefix) 参数 描述 data 必需。...

    PHP _construct()函数讲解

    PHP _construct() 函数 实例 函数创建一个新的 SimpleXMLElement 对象,然后输出 body 节点的内容: &lt;?php $note=&lt;&lt;&lt;XML &lt;note&gt;Tove &lt;from&gt;Jani &lt;heading&gt;Reminder &lt;body&gt;Don't forget me this ...

    PHP学习手册(PHP知识大全)

     在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。  在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct...

    php构造函数与析构函数

    php构造函数是对象创建完成后,第一个自动调用的方法,析构函数是当对象被释放之前最后一个自动调用的方法。本文章向大家介绍php构造函数与析构函数。 php构造函数 1.是对象创建完成后,“第一个”“自动调用”的方法...

    深入浅析JS Function()构造函数

    function constructFunction(){ var scope="local"; return new Function(" return scope"); } constructFunction()();  function constructFunction2(){ var scope="local"; return function(){ return scope; } }...

Global site tag (gtag.js) - Google Analytics