PHP在函数调用期间定位特定的可选参数

时间:2017-05-09 13:43:54

标签: php

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

e.g。有功能

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
    }
}

正如您在此处所看到的,所有optionnals参数都可以设置为TRUE或FALSE,而不依赖于其他optionnal参数的设置。

在妈妈那里,我将这个函数称为截断我的字符串的方式是通过设置$ param4' TRUE'像这样:

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

由于我是一名信息学家,我非常懒惰,所以我不想写这两个'错误的'每当它已经预先设定好的时候。

是否有方法/语法直接转到$ param4?

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

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

1 个答案:

答案 0 :(得分: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']);