php自定义函数的参数默认值用法详解
程序员文章站
2022-05-02 21:45:49
...
任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它函数和类定义。
函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。
可以用正则表达式表示为:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。
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("第一个参数"); 我们期望的是第一个参数以默认值代替,第二个参数用传入参数代替.但是不是这样的,替换参数的顺序是从左到右.所以第二个参数不但没有传入值,连默认值都没有,所以直接报错
正确的默认值应该是这样的
function TestStr3($str,$para='mmmmm') { return $str."和".$para."都是字符串"; }
然后输出:
第一个参数和mmmmm都是字符串
以上就是php自定义函数的参数默认值用法详解 的详细内容,更多请关注其它相关文章!