PHP类函数命名

PHP类函数命名,php,class,function,naming,Php,Class,Function,Naming,我在命名函数时遇到问题。我有一个类,我需要2个函数,如下所示 class myclass { public function tempclass () { echo "default"; } public function tempclass ( $text ) { echo $text; } } 当我打电话时 tempclass('testing'); // ( called after creating the obje

我在命名函数时遇到问题。我有一个类,我需要2个函数,如下所示

class myclass {
    public function tempclass () {
        echo "default";   
    }
    public function tempclass ( $text ) {
        echo $text;
    }
}
当我打电话时

tempclass('testing'); // ( called after creating the object )

正在调用函数tempclass()我怎么能有两个同名但参数不同的函数?

传统的重载在PHP中目前是不可能的。相反,您需要检查传递的参数,并确定如何响应

检查并在这一点。您可以在内部使用这两种方法来确定应该如何响应某些方法的调用。例如,在您的情况下,您可以执行以下操作:

public function tempclass () {
  switch ( func_num_args() ) {
    case 0:
      /* Do something */
      break;
    case 1:
      /* Do something else */
  }
}
或者,您也可以为参数提供默认值,并使用这些值来确定您应该如何反应:

public function tempclass ( $text = false ) {
  if ( $text ) {
    /* This method was provided with text */ 
  } else {
    /* This method was not invoked with text */
  }
}

在PHP中,重载是不可能的

但是,对于上面的简单示例,类似于这样的方法是可行的:

class myclass {
    public function tempclass ($text='Default') {
        echo $text;
    }
}

为什么对代码使用引号格式而不是代码格式?+1,但建议编辑答案以包含指向
func\u get\u args()
func\u num\u args()
:-)的参考链接做了一个我认为你可能会同意的改变。完全同意!你的在线联系方式不起作用。你住在苏格兰,我也住在。我的联系方式可以通过这个网站找到。