PHP笔记 17 18 19 20 21

自定义函数

<?php
function text()
{
    echo '你好!';
}
text();
注意:function后跟自定义函数。

末尾的text():为函数的调用,与前面的保持一致,同时text():放在自定义函数前,也能实现。

函数的调用需要遵守定义函数的时候写的规则,一一对应,将具体的实际参数传给定义函数时候写的形式参数;
调用函数之后执行的过程是相对独立的,互不干扰的,默认没有联系。

在这里插入图片描述

参数

形式参数由零个,一个或多个变量组成。
实际参数由零个,一个或多个参数组成,每个参数是一个表达式,用逗号隔开。

<?php
function add($a,$b)//形式参数,一种形式,在这里,没有具体的值
{
    echo $a+$b;
}
add(2,3);//实际参数
?>

函数返回值

是将函数执行后的结果返回给调用者,默认值如果不写返回,则函数的返回值为NULL。

<?php
function add($a,$b)
{
    return $a+$b;//返回值给调用的地方,结束这个函数的运行。
}
var_dump(add(2,3));//可输出
?>

调用了add函数

<?php
function add($a,$b)
{
    return $a+$b;
}
$i=add(2,3);
echo $i;
?>

PHP变量的范围

局部变量

局部变量也称内部变量,是在函数内定义的,其作用域仅限于函数内部(即为{ }内),离开函数后再使用这种变量就是非法的错误的。

<?php
function add(){
    $i=22;
    echo $i;//有意义
}
echo $i;//无意义
add();

全局变量

也叫外部变量,在函数的外部定义的,它的作用域为从变量定义处开始,到本程序,文件末尾。
但在PHP函数中无法直接使用全局变量,如需使用,必须用global声明变量。

<?php
$i=10;
function add(){
    global $i;//声明$i为全局变量,然后在这个函数内部就可以使用$i;
    echo $i;
}
add();

静态变量

在函数内部定义变量时,使用static关键字来定义变量。

<?php
function add(){
    static $i=23;//静态变量,仅在第一次调用时执行,
    echo ++$i;//当第二次执行这个函数的时候,$i这个变量依旧存在
}
add();
echo'<br />';
add();

在这里插入图片描述

而缺少关键字

<?php
function add(){
    $i=22;
    echo ++$i;//有意义
}
add();
echo'<br />';
add();

在这里插入图片描述

参数的传递

按值传递参数

默认的,我们在传递参数的时候默认使用的就是这个方式。
对于形式参数的操作,根本不是影响到实际参数(变量)的值,两者 相当于没有联系!

<?php
function add($i){
    echo ++$i;
}
$i=10;
add($i);
echo '<br />'.$i;

在这里插入图片描述

按引用传递参数

按引用传递参数,相当与形式参数和实际参数指的是同一个人,只是名字不一样,对于形式参数的操作会直接影响到实际的参数(变量)

<?php
function add(&$i){
    echo ++$i;
}
$i=10;
add($i);
echo '<br />'.$i;

在这里插入图片描述

函数的默认参数

可以给形式参数设置默认值,设置方法很简单直接赋值即可!

<?php
function add($i=10){
    echo ++$i;
}
add();

如果不传,按上面的值走。

在这里插入图片描述

<?php
function add($i=10){
    echo ++$i;
}
add(20);

如果传的话,按下面的实际参数值走。
在这里插入图片描述
注意:形式参数加默认值,要从右往左。

<?php
function add($a=1,$i){
    echo $a+$i;
}
add(,20);

会报错,要将右面的$i先赋值。才可以对于$a 进行赋值。

<?php
function add($a,$i=1){
    echo $a+$i;
}
add(3,);

<?php
function add($a,$i=1){
    echo $a+$i;
}
add(3);

均可的到,如图所示。
在这里插入图片描述
以次同理…

可变长度参数

fun_get_args();//数组类型
fun_get_arg();//括号内可加数字(从0开始),代表要输出传入的第几个实参。
多为var_dump(fun_get_arg());
func_num_args();//返回传入函数的参数个数
这三个函数可以使用在我们的定义函数内部,能够返回给我们一些关于参数的信息。

可变函数(变量函数)

可变函数不能直接用于例如 echo,print,unset(),isset();empty(),include,require 以及类似的语言结构,

<?php
function text(){
    echo '可变text';
}
$a='text';//把函数名字加上引号,赋值给变量即可,
$a(2);//text();

递归函数

在函数内部,自己调用自己,

<?php
function text($n){
    echo $n.'可变';//前
    if($n>0)
    {
        text($n-1);
    }
    else{
        echo'<-->';
    }
    echo $n.'可变';//后
}
text(3);
$n 是局部变量,在分配的空间里面相互独立,没有关联。

在这里插入图片描述

当先输入3执行完后键入判断,判断要求用test(),函数test()没有执行完毕,后面的输出3也不会执行。

内部(内置)函数

php提供给我们许多现成的函数或者结构,我们可以在实际的开发中直接使用。
还有一些函数需要开启 特定的php扩展模块,否则在使用他们时会得到一个致命的”未定义函数“错误。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值