首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP类函数命名

PHP类函数命名
EN

Stack Overflow用户
提问于 2012-04-20 23:19:57
回答 2查看 151关注 0票数 2

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

代码语言:javascript
运行
复制
class myclass {
    public function tempclass () {
        echo "default";   
    }
    public function tempclass ( $text ) {
        echo $text;
    }
}

当我打电话的时候

代码语言:javascript
运行
复制
tempclass('testing'); // ( called after creating the object )

function tempclass()正在被调用,我怎么才能有两个同名不同参数的函数呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 23:22:48

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

在这里查看func_num_argsfunc_get_args。您可以在内部使用这两种方法来确定应该如何响应对某些方法的调用。例如,在您的示例中,您可以执行以下操作:

代码语言:javascript
运行
复制
public function tempclass () {
  switch ( func_num_args() ) {
    case 0:
      /* Do something */
      break;
    case 1:
      /* Do something else */
  }
}

或者,您也可以为您的参数提供默认值,并使用这些值来确定您应该如何反应:

代码语言:javascript
运行
复制
public function tempclass ( $text = false ) {
  if ( $text ) {
    /* This method was provided with text */ 
  } else {
    /* This method was not invoked with text */
  }
}
票数 5
EN

Stack Overflow用户

发布于 2012-04-20 23:25:26

重载在PHP中是不可能的。

但是,对于上面的简单示例,如下所示将会起作用:

代码语言:javascript
运行
复制
class myclass {
    public function tempclass ($text='Default') {
        echo $text;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10248961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档