博主信息
博文 30
粉丝 1
评论 0
访问量 29791
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP的函数及其应用 20190928
阿乎乎的学习
原创
629人浏览过

PHP自定义函数用function来定义,函数包括函数名,参数,以及代码块,其中函数名命名规则和变量命名规则相似,不能以数字开头,参数可以有多个,也可以没有。

函数内要调用函数外的变量时,有两种方法,第一中在函数内,在变量前添加global,用来声明变量是一个全局变量。第二种,用$GLOBALS['变量名']用引用,这个是超全局变量,在全局变量定义的时候会自动添加到这个数组内,用变量名=>变量值的方式。

一般情况下,函数有返回值,用return表示,函数内return以后的代码都不会执行,当省略了return时,函数的返回值为NULL。

函数的参数可以定义默认值,即在调用的时候,如果参数没有传值则使用默认值。

实例

//函数声明方式
function functionName($par1,$par2,...,$parn){
    //代码块
}
//函数内引用函数外的变量
$name1='lucy';
$name2='bob';
function name(){
   global $name1;
   $name2=$GLOBALS['name2'];
   return $name1 .'<br>'. $name2;
}
echo name();

运行实例 »

点击 "运行实例" 按钮查看在线实例

作业:写一个函数,计算不定参数的乘积, 要求使用到剩余参数来实现

实例

//使用func_get_args()获取参数列表,使用foreach循环计算结果,我发现虽然不定参数本身是一个数组,但是在函数内使用func_get_args()获取参数列表时,会把参数和不定参数打包为一个数组,本来我以为不定参数会成为数组内的一个元素,导致这个数组成为二维数组。
function ride1($a,$b,$c,...$params){
    echo '<pre>';
    $list=func_get_args();
    print_r($list);
    echo '</pre>';
    echo '<br>';
    $ride=1;
    foreach($list as $value){
        $ride*=$value;
    }
    return $ride;
}
echo ride1(1,2,3,4,5,6);
echo '<hr>';
//使用array_push()添加元素到数组内,它的返回值是数组内元素的个数,再利用内置函数array_product()计算数组的积。
function ride2($a,$b,$c,...$params){
    $num=array_push($params,$a,$b,$c);   //array_push()将要添加的元素依次添加到数组的前面
    echo '<pre>';
    print_r($params);
    echo '<br>$params数组的元素个数为'.$num.'个';
    echo '</pre>';
    return array_product($params);
}
echo ride2(1,2,3,4,5,6);
echo '<hr>';
//使用array_unshift()添加元素到数组内,它的返回值是数组内元素的个数,再利用内置函数array_product()计算数组的积。
function ride3($a,$b,$c,...$params){
    $num=array_unshift($params,$a,$b,$c);//array_unshift()将要添加的元素依次添加到数组的前面
    echo '<pre>';
    print_r($params);
    echo '<br>$params数组的元素个数为'.$num.'个';
    echo '</pre>';
    return array_product($params);
}
echo ride3(1,2,3,4,5,6);

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

批改状态:合格

老师批语:作业有布置了这么多吗? 不过多写总是好的
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学