博客列表 >PHP的函数及其应用 20190928

PHP的函数及其应用 20190928

阿乎乎的学习
阿乎乎的学习原创
2019年09月29日 11:32:51471浏览

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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议