PHP小技巧之函数重载

php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。

1.可以使用func_get_args()和func_num_args()这两个函数实现函数的重载!!

PHP代码:

  1. function rewrite() {
  2. $args = func_get_args();
  3. if(func_num_args() == 1) {
  4. func1($args[0]);
  5. } else if(func_num_args() == 2) {
  6. func2($args[0], $args[1]);
  7. }
  8. }
  9. function func1($arg) {
  10. echo $arg;
  11. }
  12. function func2($arg1, $arg2) {
  13. echo $arg1, ' ', $arg2;
  14. }
  15. rewrite('PHP'); //调用func1
  16. rewrite('PHP','China'); //调用func2

2.使用默认值,从而根据输入,得到自己想要的结果:

  1. function test($name="小李",$age="23"){
  2. echo $name." ".$age;
  3. }
  4. test();
  5. echo "<br/>";
  6. test("a");
  7. echo "<br/>";
  8. test("a","b");