<?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__; //目录
?>