doutang2017 2013-04-03 03:56
浏览 25
已采纳

php中构造函数和统一构造函数之间的区别

Is there any difference in constructor or unified constructor. I have a class which have a constructor and a unified constructor. When i intialise object of the class then unified constructor call why not normal constructor.

<?php 

class test {

    function __construct() {
       print "In BaseClass constructor
";
    }

    function test() {
        echo 'Class loeaded';                   
    }
}

$obj = new test();

?>

OUTPUI

In BaseClass constructor

PHP Version 5.2.6

  • 写回答

4条回答 默认 最新

  • duanhao9176 2013-04-03 04:09
    关注

    Since PHP 5, the best way to declare a constructor method in a class is to use the standardized

    __construct()
    

    So if you have

    class myA {
    
      public function __construct() {
        echo "hello construct myA";
      }
    
      public function myA() {
        echo "hello basic way myA";
      }
    }
    
    $myA = new myA();
    

    It will echo

    hello construct myA
    

    because the __constructor() has priority

    But, for compatibility reason, the old way may work if there is not __construct() method. And:

    class myA {
    
      //public function __construct() {
      //  echo "hello construct A";
      //}
    
      public function myA() {
        echo "hello basic way myA";
      }
    }
    
    $myA = new myA();
    

    will give you:

    hello basic way myA
    

    In all cases, I advise you to use __construct()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名