php不支持函数的重载,以后也不会支持
在oop中,函数的重载有两个条件
1、参数的个数不同——php支持参数缺省(默认参数),无法用参数个数区别
2、参数的类型不同——php是弱类型语言,会根据上下文自动做类型转换
但支持对象方法的覆盖(或叫重写)override ,这种也可以叫‘重载’做‘重新装载’。子类中覆盖父类中的方法,参数个数可以不同。
在oop中,函数的重载有两个条件
1、参数的个数不同——php支持参数缺省(默认参数),无法用参数个数区别
2、参数的类型不同——php是弱类型语言,会根据上下文自动做类型转换
所以,php不可能支持函数的重载。
<?php
function myFun($var, $var2 = "waht?", $var3 = 2000, $var4 = 'ABC', $var5 = "")
{
echo "var = ".$var, "<br />";
echo "var2 = ".$var2, "<br />";
echo "var3 = ".$var3, "<br />";
echo "var4 = ".$var4, "<br />";
echo "var5 = ".$var5, "<br />";
echo "<p>-------------------------------------</p>";
}
$x = 09;
myFun($x);
myFun(234);
myFun(1, 3, 4, 5);
myFun(0, 'G', "lol", 900000, 0.0000);
?>
但支持对象方法的覆盖(或叫重写)override ,这种也可以叫‘重载’做‘重新装载’。子类中覆盖父类中的方法,参数个数可以不同。