php - 这是 PHP 的标准行为吗?

标签 php syntax

这在没有警告的情况下工作:

function test($a)
{
    echo 1;
}
test(2, 1);

这会引起警告:

function test($a)
{
    echo 1;
}
test();

如果是标准的,有什么原因吗?

最佳答案

因为在第一个示例中 test() 可能会使用 func_get_args() 来访问它的参数,所以它不应该抛出错误。

在第二个例子中,$a 不是可选的。如果您希望它是可选的,请像这样在参数签名中添加一个默认值

function test($a = 1)
{
    echo 1;
}
test();

所以是的,这是默认行为,一旦您了解了上述内容,它就有意义了。

关于编辑

在编辑的第一个示例中,您将能够作为 $a 访问 2,但是 1 可通过 func_get_args()(或其类似函数之一,如 func_get_arg())访问。

关于php - 这是 PHP 的标准行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3146066/

相关文章:

python - 解析 Python 函数调用以获取参数位置

php - 检查字符串是否包含数组中的单词

php - 如何在 PHP 中获取每月的周数?

c++ - 模板化 operator() 重载 C++

带有迭代器的 Javascript for 循环在 i 的中间和递减运算符的左侧?

python - Ruby方法相当于python中的 "if a in list"?

php - Laravel 使用 paypal 进行信用卡付款返回未经授权的付款

php - 是否可以在同一个 if block 中运行多个 elseif block ?

php - 如何生成 Joomla 密码?

Javascript/jQuery 新手错误,mouseenter 事件导致语法错误