PHP:函数参数中参数的声明

PHP:函数参数中参数的声明,php,function,scope,predefined-variables,Php,Function,Scope,Predefined Variables,首先,我想不起这个过程的名称,但它看起来是这样的: function test($alter = FALSE){ //do stuff return $alter; } 在函数声明中设置$alter=FALSE右键 那叫什么?这是怎么回事?在下列情况下会发生什么 $result=test() $result=测试(真) 如果没有传递其他值,则将FALSE定义为默认值 对于您的示例,结果(顺序)如下: FALSE TRUE 在方法头中定义的FALSE是默认值(如果调用时未向参数

首先,我想不起这个过程的名称,但它看起来是这样的:

function test($alter = FALSE){
    //do stuff
    return $alter;
}
在函数声明中设置$alter=FALSE右键

那叫什么?这是怎么回事?在下列情况下会发生什么

$result=test()


$result=测试(真)

如果没有传递其他值,则将
FALSE
定义为默认值

对于您的示例,结果(顺序)如下:

FALSE
TRUE

在方法头中定义的FALSE是默认值(如果调用时未向参数添加任何内容)test(),否则其行为类似于正常参数。。因此,如果您调用
test(TRUE)
值将为TRUE

除了:您可能记得的术语是“函数重载”,但这并不是这方面的真正体现(只是PHP的“默认参数”可能类似)

”
结果:
欢迎光临
b:1
b:
b:一些文字
b:
"

如果其为false/null/empty,则似乎不会打印任何内容。。
只要不为null/empty,你传递给方法string/boolean的内容就会打印出来。

+1请参阅“默认参数值”一节,你可以随时测试它。如果你还没有,你应该弄清楚如何访问php,这样你就可以尝试这样的东西。我相信超载是我一直在寻找的答案。是不一样的,但默认参数可以被黑客攻击,以实现一些相同的效果。在重载中,您使用相同的名称定义多个方法,但使用不同的名称,编译器根据传入和传出的内容选择要应用的方法。将其称为“标量参数的默认值”(参见示例3)
"<?php
echo"welcome";
function a($b=false){
echo"<br /> b: ".$b;
}


a(true);
a();
a("some text");
a(false);