PHP学习笔记二十六【类的重载】

<?php
  //重载:
  //函数名一样,通过函数的参数个数或者是参数类型不同,达到调用同一个函数名

    Class A{
     // public function test1(){
      // echo "test1()";
     // }
     // public function test1($name)
     // {
        // echo "hello world";
     // }
      //PHP不支持以上的重载方式
      
       public function test1(){
      echo "调用test1()";
     }
     public function test2($name)
     {
        echo "调用test2()";
        echo "<br/>".__CLASS__."<br/>";//输出在当前哪个类中
            echo "<br/>".__FUNCTION__."<br/>";//输出函数名称
     }
      
      
      
      //使用魔术方法定义方法的重载
      function __call($method,$p)
      {
        if($method=="test")
        {
            if(count($p)==1)
            {
              $this->test1($p);
            }else if(count($p)==2)
            {
              $this->test2($p);
            }
        }
      }
    }
     $a=new A();
     $a->test("张三");
     $a->test("张三",34);
     
     
     echo "<br/>".__LINE__; //魔术常量输出当前行
     echo "<br/>".__FILE__; //输出文件路径
     echo "<br/>".__DIR__; //目录
     
  ?>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。