用户自定义函数
函数无需在调用前被定义,除非是有条件定义的。
php中的所有函数和类都具有全局作用域。php不支持函数重载,也不可能取消定义或者重定义已声明的函数。
特意试了下,我的电脑上的php递归栈的最大深度为100。
函数参数
php支持按值传递参数(默认)、通过引用传递参数以及默认参数。也支持可变长度参数列表。php允许使用数组和特殊类型null作为默认参数。如果希望允许函数修改参数值,必须通过引用传递参数。
注意!当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧,否则函数将不按照预期工作。
php在用户自定义函数中支持可变数量的参数列表。在php 5.6及以上的版本中,有...语法实现,可以这样写,由于没有合适的环境也无法测试。
当然在php 5.5等低版本中也可以使用可变数量的参数列表。通过函数func_num_args()、func_get_arg()、gunc_get_args()获得参数数目、某一参数内容、参数数组。
返回值
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符&。
products[$product] : false; } public function gettotal($tax) { $total = 0.00; $callback = function($quantity, $product) use ($tax, &$total) { $priceperitem = constant(__class__ . ::price_ . strtoupper($product)); $total += ($priceperitem * $quantity) * ($tax + 1.0); }; array_walk($this->products, $callback); return round($total, 2); }}$mycart = new cart;$mycart->add('butter', 1);$mycart->add('milk', 3);$mycart->add('eggs', 6);echo $mycart->gettotal(0.05);
注意!匿名函数语句末尾的分号一定不要落下!
(全文完)
以上就介绍了函数 - php手册笔记,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。