PHP编程之函数练习

函数:封装一段用于完成特定功能的代码

系统函数:php编程系统自带的函数

自定义函数:指需要自己来定义的函数,可以自己设置函数名称,参数数量以及执行代码;关键字为function

参数设置:

1、无参函数:适用于不需要提供任何数据即可完成指定功能的情况

代码:

<?php

function shout()

{

    return 'come on';

}

echo shout();// 输出结果:come o

?>

结果:

2、按值传递参数:在函数内部可以随意对用户传递的参数进行操作

代码:

<?php

function setPoint($x,$z,$y=0){

    echo "{".$x.",".$y.",".$z."}";

}

setPoint(5,90);


 

?>

结果:

注意:默认值必须是常量表达式,不能是变量。且带默认值的参数只能位于参数列表的最后,即一个带有默认值参数的右边不能出现没有指定参数值的参数

3、引用传参:通过函数参数的引用传递来实现函数参数值的修改

代码:

<?php

function modify(&$string)

{

    $string = '我这下雪啦';

}

$str = '你那下雪啦吗?';

modify($str);

echo $str;  // 输出:'你那下雪啦吗?'

?>

结果:

默认值参数:给参数设置一个默认值,调用者未传递该参数时,函数将使用默认值进行操作

代码:

<?php

function say($p, $con = '"Hello"')

{

    return "$p say $con";

}

echo say('Tom');

?>

结果:

变量的作用域:变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域

代码:

?php

function test()

{

    $sum = 36;  // 局部变量

    return $sum;

}

$sum = 0;   // 全局变量

echo test();    // 输出结果:36

echo '<br/>';

echo $sum;              // 输出结果:0

?>

结果:

全局变量:global关键字、超全局变量$GLOBALS[变量名]

代码:

<?php

$x=100;

function test(){

    global $x;

$y=10;

    return $x+$y;

}

echo test();//110

?>

结果:

静态变量:所有的全局变量都是静态变量;局部变量只有在定义时加上修饰符static,才为局部静态变量

代码:

<?php

function num()

{

    static $i = 1;

    echo $i;

    ++$i;

}

echo num().'<br/>';

echo num().'<br/>';

echo num();

?>

结果:

函数的嵌套调用:

嵌套调用:指的是在调用一个函数的过程中,调用另外一个函数

代码:

<?php

function sum($yuwen,$shuxue){

    $sun=$yuwen+$shuxue;

    return $sun;

    }

function avg($yuwen,$shuxue){

    $avg=sum($yuwen,$shuxue)/2;

    return $avg;

    }

    $avg=avg(50,80);

    echo $avg;

?>

结果:

递归调用:指的是一个函数在其函数体内调用自身的过程

代码:

<?php

function Fact($n) {

    $sum=1;

    if($n <= 1){

        return 1;

    }else{

        $sum = $n * fact($n-1);

        return $sum;

    }

}

echo "5 的阶乘为: " .Fact(5)."<br>";

echo "3 的阶乘为: " .Fact(3)."<br>";

echo "4 的阶乘为: " .Fact(4)."<br>";

echo "10 的阶乘为: " .Fact(10);

?>

结果:

函数的高级应用:

可变函数:就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,然后PHP就寻找与变量值同名的函数,并且尝试执行它。

代码:

<?php

# 变量函数的用法:

function demo(){

    echo "天王盖地虎! ";

    }

$de='demo'; //将demo函数名赋给变量$de;

echo $de();//调用该变量名加();

?>

结果:

回调函数:就是把函数作为参数传入进另一个函数中使用,一般用作参数的传递。

代码:

<?php

function qwe($name,$age){

echo "我叫$name 我$age 岁了 <br>";

}

call_user_func('qwe', "张三",'18');

call_user_func('qwe', "李四",'24');

?>

结果:  将内置函数call_user_func()的参数值传递给qwe()函数

匿名函数:就是没有函数名称的函数,也称作闭包函数。临时定义的函数,使用时无需考虑命名冲突的问题

注意:匿名函数中使用外部的变量,需要通过use关键字实现。use关键字后圆括号“()”

例如:$sum = function($a, $b) use($c){ }

代码:

<?php

$sum = function($a, $b) {   // 定义匿名函数

    return $a + $b;

};

echo $sum(100, 200);    // 输出结果:300

?>

结果:

匿名函数做回调函数使用:

代码:

<?php

function calculate($a, $b, $func)//回调函数

{

    return $func($a, $b);

}

echo calculate(100, 200, function($a, $b) {     // 输出结果:300

    return $a + $b;

});

echo '<br>';

echo calculate(100, 200, function($a, $b) {     // 输出结果:20000

    return $a * $b;

});

?>

结果:

PHP的内置函数:

执行结果:

1-4

5-10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值