代码拉取完成,页面将自动刷新
<?php
// more about function
// 静态变量
function counter() {
static $c = 0; # init only once
return ++$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, isset
function fi() {
return "fififi";
}
function fee() {
return "fefefe";
}
function fo() {
return "fofofo";
}
$name = "fee";
// 先检查这个函数是否存在
if (function_exists($name)) {
echo $name(), "<br/>";
}
// 闭包(匿名函数) closure
function 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);
?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。