php - PHP 与 Python 中的默认函数变量

标签 php python function default-value

在Python中,一个函数可以有多个变量,所有变量都有默认值。然后只传递其中一个值的值。所以如果我有

function foo(a=10,b=50, c=70)
    pass
    pass
    return

然后我可以打电话

foo(b=29)

它会调用

foo(10,29,70) 

(使用所有值的默认值,以及该变量的精确值)。​​

PHP 中是否可以实现类似的功能?

最佳答案

不,PHP 中没有等效项。您可以为函数参数设置默认值,但它们是从左到右计算的,并且没有命名:

function test($var1 = 'default1', $var2 = 'default2')
{

}

在该示例中,两个变量是可选的,但如果要指定第二个参数,则必须指定第一个参数。

test(); // works
test('arg1'); // works
test('arg1', 'arg2'); // works
test('arg2'); // this will set the first argument, not the second.

如果您需要灵活地处理可选参数,则常见的解决方法是将数组作为参数传递:

function test($options)
{

}

这可以具有单个关联数组形式的可变数量的参数:

$options = array('var1' => 'arg1', 'var2' => 'arg2');
test($options);

关于php - PHP 与 Python 中的默认函数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14173930/

相关文章:

php - 使用Google PHP API客户端响应的特殊字符

php - 在 MYSQL 中操作外键输出

多行列表理解的 Pythonic 风格

python - 我们可以将小写字符增加一个吗

php - 在 PHP 数组中显示多行

python - 用 pandas 替换字符串中除最后出现的字符之外的所有字符

javascript - Jquery:页面加载时调用函数

php - 我应该如何重写这个方法以获取更多参数

c++ - C++中函数的内存分配

php mysql 如何使用 mysql_insert_id() 能够同时插入2个表?