Blogger Information
Blog 30
fans 1
comment 0
visits 24283
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP的函数及其应用 20190928
阿乎乎的学习
Original
470 people have browsed it

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);

运行实例 »

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

 

Correction status:qualified

Teacher's comments:作业有布置了这么多吗? 不过多写总是好的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post