PHP在函数调用期间针对特定的可选参数[重复]

Posted

技术标签:

【中文标题】PHP在函数调用期间针对特定的可选参数[重复]【英文标题】:PHP target a specific optional argument during function call [duplicate] 【发布时间】:2017-05-09 13:43:54 【问题描述】:

我想知道是否存在在 php 5.6 或更高版本中调用函数时调用特定可选参数的方法

例如有一个功能

public static function foo($string, $param2 = FALSE, $param3 = FALSE, $param4 = FALSE)

    if($param2 === TRUE)
    
        #Code that replace all 'e' in $String by 'a' for exemple
    

    if($param3 === TRUE)
    
        #Code that upper case $String for exemple
    

    if($param4 === TRUE)
    
        #Code that truncate $string to 4 characters for exemple
    

正如您在此处看到的,所有选项参数都可以设置为 TRUE 或 FALSE,而与其他选项参数的设置没有任何依赖关系。

目前,我调用这个函数来截断我的字符串的方式是通过像这样设置 $param4 'TRUE' :

foo($string, FALSE, FALSE, TRUE);

由于我是一名信息学家,我很懒惰,所以我不想每次都写这两个'FALSE',而它已经预设了。

是否有直接进入 $param4 的方式/语法?

如果我想设置 ($param2 and $param4) 或 ($param3 and $param4),同样的问题。

我希望我已经足够清楚了,我提前谢谢你。

【问题讨论】:

【参考方案1】:

最好的方法是只发送一个参数,作为一个数组:

public static function foo($string, $options = [])

    if (isset($options['flag1']))
    
      #Code that replace all 'e' in $String by 'a' for exemple
    
    if (isset($options['flag3']))
    
      #Code that replace all 'e' in $String by 'a' for exemple
    
    if (isset($options['flag3']))
    
      #Code that replace all 'e' in $String by 'a' for exemple
    

你可以这样称呼它

$foo('test', ['flag2']);

【讨论】:

谢谢,这正是我所需要的 酷。您也可以将答案标记为正确吗?

以上是关于PHP在函数调用期间针对特定的可选参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP函数中的可选参数不考虑顺序

Python中的类/函数中的可选参数[重复]

Angular如何传递跳过一些[重复]的可选构造函数参数

Javascript:函数中的可选参数[重复]

JavaScript中的可选参数[重复]

springboot获取请求参数的几种方式可选参数使用