作者名:Demo不是emo
主页面链接:主页传送门
创作初心:对于计算机的学习者来说,初期的学习无疑是最迷茫和难以坚持的,中后期主要是经验和能力的提高,我也刚接触计算机1年,也在不断的探索,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望能帮助到大家
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构每日emo:初始你名,久居我心
今天是学习php的第四天,而今天的主要内容也是php中极其重要的一部分,那就是函数,希望大家看了这篇文章之后能对php中的函数有一个基础的了解,话不多说开启今日份学习
目录
一:PHP中的函数
1.函数的基本语法
2.自定义函数
3.回调函数
4.匿名函数
1.变量函数式的匿名函数
2.回调式的匿名函数
5.内部函数
6. 变量作用域
1.$GLOBAL
2.GLOBAL
7.参数的引用
8.递归函数
9.静态变量
10.系统函数
函数,英文名为function ,而function也有功能的含义,可以理解为函数就是功能,调用一个函数就是实现一个功能,函数的两个特点,可以随时调用,可以重复调用,
对于函数,我们一般分为两大类,自定义函数和系统函数
php提供了很多功能强大的函数,但仍然不能满足程序猿的一些需求,这时候就需要程序猿根据自己的需求来创建函数,即自定义函数,定义格式如下
function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]])
{
// 函数中的功能体
// return 返回值
}
注意:1.这里的参数其实就是变量
2.定义的函数名并不区分大小写,这一点很多人都会忘记
3.函数可以多次调用,但是不能多次定义同名函数
4.函数名只能是字母,数字,下划线的组合
5.函数的参数可以设置默认值,如下:,此时就算调用时不传参也不会报错
function test( $arg = 10){
echo $arg;
}
6.在代码层面可以先调用,在后面再创建该函数
回调函数其实就是在一个函数的参数位置传入另外一个函数,配合第一个参数的执行,这样说着有点抽象,下面用php中文网的代码例子给你们看看
'; // 90
//将plusx2改成jian试试结果
echo woziji(20,10,'jian'); // 40
?>
就是调用函数时在要填入变量的位置填入函数作为变量
注意:这里也可以自己调用自己,在递归中常用
匿名函数就比较简单了,就是没有函数名的函数,匿名函数也有两种常用的格式,下面我们来介绍一下
例子如下:
调用时直接用定义的greet变量加上()即可使用,也可以理解为将这个变量当做了函数名
这个就更简单,当我们编写自定义函数时,不想专门去写一个回调函数,就可以在调用回调函数的位置用匿名函数代替,如下
woziji(20,30,function( $foo , $bar){
$result = ($foo+$bar)*2;
return $result;
}
);
如上,本来woziji函数的第三个参数应该是我们定义好的函数名,但是我们不想再另外定义,就可以在这里使用匿名函数
内部函数顾名思义就是在函数内部又重新定义了一个函数,需要注意的只有两点
内部函数名,不能是已存在的函数名
假设在函数a里面定义了一个内部函数,不能调用两次函数a。
要调用内部函数的时候要先调用外面的函数
单独调用外部函数时,不会执行内部函数
我们几天前就已经接触了变量这个概念,但是变量也有自己作用的范围,不在其范围内便无法使用该变量,比较常见的就是函数内定义的变量跟函数外没有任何关系,那如果我想在函数外调用函数内的变量,或者反过来,就没有办法了吗?
这里就要讲到我们的$GLOBALS和GLOBAL了,先讲$globals,这里给出几个例子
再讲一下GLOBAL ,用法也很简单,就是在global的后面跟上变量名,这个变量就可以在程序的任何地方使用了,就像下面这样
global $a , $b;
例如$a=&$b,这是变量的引用,让他们指向同一个存储空间,此时两者变化同步,而参数的引用也是这样,将 形参和实参指向同一存储空间,两个的值此时也会同步变化
';
//你会发生$foo的值变为了10
echo $foo;
?>
大致意思就是通过&将$n指向$foo所在的存储空间,所以这里改变$n的值,$foo也会同步改变
这里的递归函数跟前面的回调函数有异曲同工之妙,回调函数是在函数内调用其他函数,但是丢鬼函数实在函数里调用自身,即自己调用自己,下面有一个例子
';
$n = $n - 1;
if($n > 0){
//在函数体内调用了dg自己哟
dg($n);
}else{
echo '--------------';
}
echo '我是最后一个哦!' . $n . '
';
}
dg($n);
?>
这也是个很简单的东西,大致就是一个函数会根据你传入的值做不同的处理,不断调用自身并执行函数体,直到传入的值不适合在这个函数运行,就退出 ,有些代码基础的应该很容易懂,看不懂的可以下载后运行试试
静态变量主要为了解决一个问题——某个函数被调用了多少次?
简单的说就是在函数里面定义一个新变量,并给他一个值,函数每次被调用,变量就会做对应的改变,比如定义了一个$a=0,函数每次调用都执行$a++,最后得到的$a的值就是函数的调用次数
上面讲的都根据我们的需求自定义功能的函数,系统函数就是系统已经定义好了,功能也固定,需要时候直接调用就可以了,由于太多了,就不一个一个讲了,这里是php中文网整理的常用系统函数
还是比较推荐大家去看一看
今日份php学习结束,抱歉,今天上午偶然碰到一个比较有意思的站点,测试花费了太多时间,再加上今天的内容对我来说有点难,很多地方都需要记忆和下来实践运行一下,所以这篇博客发的比较晚,但是说了日更就日更,我可能会迟到,但永远不会缺席,希望她对于我人生的道路也是这样,respect!