php的函数参数按照从左到右来赋值

PHP 中自定义函数参数赋默认值  

2012-07-07 13:23:00|  分类: php自定义函数,默|举报|字号 订阅

 
 

php自定义函数接受参数的时候可以直接给赋默认值

function TestStr($str)
{
return $str."是一个字符串";
}

echo TestStr("abcdef")."</br>";

上面这个自定义函数接受一个参数,如果我们调用的时候 TestStr() ;不给参数会是什么情况呢?

直接报错:Warning: Missing argument 1 for TestStr()

所以开发的过程中为了避免上面的错误我们一般要在自定义函数的时候给参数赋默认值,如下

function TestStr2($str="kkkkk")
{
return $str."是一个字符串";
}

现在调用 TestStr2() 不出错,直接输出 kkkkk是一个字符串,当然你传出参数后会替换掉默认参数.

第三种情况:

有2个以上参数的时候,如果不是全部给出默认值,一定要按照从右到左的参数依次给出默认值.如下就是错误的事例

function TestStr3($str ='mmmmm' ,$para)
{
return $str."和".$para."都是字符串";

上面并没有遵循从右到做给出默认值,而是最左边的给出了一个默认值.

当我们调用函数的时候 TestStr3("第一个参数"); 我们期望的是第一个参数以默认值代替,第二个参数用传入参数代替.但是不是这样的,替换参数的顺序是从左到右.所以第二个参数不但没有传入值,连默认值都没有,所以直接报错

PHP 中自定义函数参数赋默认值 - moce - 走!不要让自己的脚步停下

正确的默认值应该是这样的

function TestStr3($str,$para='mmmmm')
{
return $str."和".$para."都是字符串";
}

然后输出:

第一个参数和mmmmm都是字符串

 

posted @ 2016-05-13 11:45  小苹果小可爱  阅读(400)  评论(0编辑  收藏  举报