<?php// more about function// 静态变量function counter() {static $c = 0; # init only oncereturn ++$c;}for ($i=0; $i < 3; $i++) {echo counter(), "<br/>";}// 引用传参function doubler(&$d) {$d <<= 1;}$v = 3;doubler($v);echo $v, "<br />";// 默认参数值function say($name, $some="hello", $thing="world"){echo "$name: \"$some$thing\" <br/>";}say("he");say("he", "fuck");// 变参函数function sum($a, $b, $c) {echo "$a, $b, $c <br/>";return array_sum(func_get_args());}echo sum(1, 2, 3, 4, 5, 6, 7), "<br/>";// 类型提示class Entertainment {}class Clown extends Entertainment {}class Job {}function handleEntertainment(Entertainment $a){echo "Handling " . get_class($a) . " fun <br/>";}handleEntertainment(new Clown); // works// handleEntertainment(new Job); // runtime err// 返回引用// 要在函数声明时加上引用号// 且要在函数赋值是加上引用号function & ref_test() {static $a = 0;echo "\$a = $a <br/>";return $a;}$c =& ref_test();$c++;ref_test();// 变量函数, 将函数名存储到字符串中// 通过该同名字符串调用函数// 语言结构不能作为函数 echo, issetfunction fi() {return "fififi";}function fee() {return "fefefe";}function fo() {return "fofofo";}$name = "fee";// 先检查这个函数是否存在if (function_exists($name)) {echo $name(), "<br/>";}// 闭包(匿名函数) closurefunction factory($name) {// use(..) 让闭包引用外部变量// 防止这个值被回收// 于是可以作为函数工厂$f = function() use ($name) {echo "$name ! <br />";}; # 不能漏了这个分号return $f;}$f1 = factory("ha");$f2 = factory("ho");$f3 = factory("he");$f1();$f2();$f3();// 匿名函数可以作为某些函数的输入参数$arr = array("aaa", "a", "aaaaa");usort($arr, function($a, $b) {return strlen($a) - strlen($b);});print_r($arr);?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。