你这样是不行的
php不支持函数的重载,以后也不会支持
在oop中,函数的重载有两个条件
1、参数的个数不同——php支持参数缺省,无法用参数个数区别
2、参数的类型不同——php是弱类型语言,会根据上下文自动做类型转换
所以,php不可能支持函数的重载你可以这样定义函数
function sb($a,$b="",$c="") {
echo $a.$b.$c;
}

解决方案 »

  1.   

    看看CU的精华帖:
    “很多人说php4不能支持函数重载”
    http://www.chinaunix.net/jh/27/189443.html呵呵,虽然并不是真正意义上的重载,但是接口的对外表达形式和重载是一样的。
      

  2.   

    to mikespook(Mike大懒猫) 非常遗憾,那位帖主把概念弄混了。
    同是function定义,在过程你称作“函数”,在类里称作“方法”。
    尽管php的类支持方法的重载,但同样不能在一个类定义中定义两个同名的方法
    class x {
      function aa($a,$b) {}
      function aa($a) {}
    }
      

  3.   

    呵呵~~~我不说了么:“虽然并不是真正意义上的重载,但是接口的对外表达形式和重载是一样的。”虽然 class x不能定义两个同名的方法~~~但是使用这篇帖子的方法在类的对外接口上是和重载一样的~~~~只不过定义了一个方法而已~~
    但是在传递进不同个数的参数的时候调用了不同的方法~~~~C++class x
    {
      void aa(int a, int b);
      void aa(int a);
    }PHPclass x
    {
      function aa()
      {
        ....
      }
    }使用
    obj->aa(1,2);
    $obj->aa(1, 2);形式上并没有不同~~~
      

  4.   

    test it and find the truth!
      

  5.   

    test it and find the truth!
    yes,I believe it!