楠神既然已讲到函数了,从这节开始,楠神开始创建自己的一个函数库,把一些以后讲解到的、能方便我们使用和学习的函数放入函数库文件里,用require_once载入函数库文件,就可以使用我们自己定义的函数了。
ln_dump是楠神自定义的第一个函数,因为PHP内置的var_dump()函数结果显示的格式不太友好吧,所以就重新加工了一下。这个函数大家不一定能看懂,别去研究了,拿来用即可。
提示:大家不要小瞧var_dump()函数,这个函数在业务逻辑上几乎没太大用处,可程序员在写程序时,却常用它做调试。var_dump() 和 exit(),是楠神在检查程序的bug时,最喜欢用到的两个函数。
一个函数,
1,形参一定是一个变量名!
2,该变量名只能是在该函数中有效的变量名;
3,而且只在该函数调用并执行时有效,函数结束,通常这些变量也就“销毁”。(涉及到变量作用域的问题,后边还会讲解)
实参就是一个“实际数据”,
该数据可以是一个“直接数据”(比如5,”abc”),也可以是一个变量中存储的数据。
实参的作用是将其数据“赋值给”形参变量。
是不是有多少形参,在调用这个函数时,就得传多少实参?——不是的。
定义一个函数的时候,在形式参数的位置,可以给形式参数设定“默认值”,此时就可以称为默认值参数。比如:
楠神定义了一个函数,第10行只传了一个参数,第二个参数没有传,函数就会默认是1。第11行两个参数都传了。看结果:
形参中只能是右边的参数可以有默认值,换句话说,一个形参有默认值,它右边的形参都必须是有默认值的参数,不要这样:
想一想也应该是这样的道理:第一个形参有默认值,第二个形参没有默认值。在函数调用时,无法做到不传第一个实参,只传第二个实参。
一个函数,只要形参没有默认值,就得传实参,不然就会报“notice”错误。
一个函数所有的形参都可以设置默认值的,只要有默认值的形参与无默认值的形参顺序不要弄反,就不会出错。
还要注意:
· 默认值不能是对象或资源类型;
· 默认值只能是常量表达式,或常量,不能是变量。(常量后边介绍)
即:如下语法是正确的:function f1($v1 = 3), function f1($v1 = __LINE__),
如下语法是错误的:function f1($v1 = 3+1), $m = 3; function f1($v1 = $m),
函数形参可以设置默认值,不是所有的编程语言都可以这样。后面我们要学的js它就不支持设置默认值。