• PHP学习 Day_07——自定义函数



    【GitHub参考源码】

    自定义函数

    自定义函数概述

    • 标准函数就是系统自带的函数,已经定义,只需要调用就可以完成一定的功能
    • 标准函数不能解决所有的问题,需要使用某个功能时可以使用自定义函数
    • 自定义函数可以减少代码冗余,提高代码复用率
    • 自定义函数名不能和标准函数同名,自定义函数名不能用数字开始

    无参数无返回值自定义函数

    • 自定义函数格式:
    function function_naem([arg1,[arg2...]]){
        [函数体]
        [return 表达式]
    }
    

    <?php
    
    function fun1(){
    }
    function fun2(){
        echo 'Hello Bad!';
    }
    fun2();  //调用函数,输出Hello Bad!
    
    ?>
    

    有返回值自定义函数

    :计算圆的面积

    <?php
    
    # 有返回值的函数
    function area($r){  //这里的函数名不能定义与标准函数名相同
        $s = pi()*$r*$rreturn $s;
    }
    
    $area = area(3);
    
    echo $area;  //输出圆的面积
    
    ?>
    

    带默认值参数的函数

    • 函数格式:
    function fun_name($varname=$expression){
    
    }
    

    :求圆的面积和周长

    <?php
    header("Content-Type:text/html;charset=utf-8");
    
    function circle($r,$flag=1){  //flag如果没有定义,则默认为1
        if ($flag==1)
            $s=pi()*$r*$r;
        else
            $s=pi()*2*$r;
        return $s;
    }
    
    echo '圆的面积:'.circle(5,1)."<br />";  //flag等于1,计算圆的面积
    echo '圆的面积:'.circle(5)."<br />";  //flag没有定义,默认就是为1,计算圆的面积
    echo '圆的周长:'.circle(5,2);  //flag不等于1,计算圆的周长
    
    ?>
    

    返回数组的自定义函数

    :计算圆的面积和周长

    <?php
    header("Content-Type:text/html;charset=utf-8");
    
    function area($r){
        $s[]=pi()*$r*$r;
        $s[]=pi()*2*$r;
        return $s;
    }
    
    $radius=3;
    list($s,$c)=area($radius);
    echo "半径为{$radius}的圆的面积为{$s},周长为{$c}";
    
    ?>
    

    自定义函数文件和调用

    • 将自定义函数保存到文件中,在调用该函数的页面中引入该函数所在的文件,然后再调用自定义函数

    :调用函数文件,计算1+2+3+…+n的值

    # 自定义函数文件
    <?php
    # 计算1+2+3+...+n的值
    function sum($n){
        $s=0;
        for($i=1;$i<=$n;$i++)
        $s+=$i;
        return $s;
    }
    
    ?>
    
    <?php
    # 调用文件中的函数
    include "myfanction.php";
    //require "myfanction.php";  //这里include和require都可以引用函数文件
    
    $n=100;
    $s=sum($n);
    echo $s;
    
    ?>
    

    传值和传址

    • 传值
      • 调用参数将值递给函数,函数中参数的改变不会影响调用参数
      • 调用的参数可以是变量或者表达式
    • 传址
      • 也叫引用,调用参数,将参数本身的地址传递给函数,函数中参数的改变会影响调用参数
      • 调用参数和函数中的参数实际上是相同的存储单元
      • 调用参数时,必须是变量

    <?php
    function fun($arg1,&$arg2){
        $arg1+=100;
        $arg2+=100;
    }
    
    $a=5;
    $b=15;
    fun($a,$b);
    
    echo $a."<br />";
    echo $b;
    
    //fun($a+5,$b+5)  //这里传址必须使用变量,不能是表达式
    
    ?>
    

    :通过传值与传址计算圆的周长和面积

    <?php
    header("Content-Type:text/html;charset=utf-8");
    
    function circle($r,&$c){
        $s=pi()*$r*$r;
        $c=pi()*2*$r;
        return $s;
    }
    
    $radius=5;
    $area=circle($radius,$girth);  //地址是可以返回的
    echo "圆的面积是{$radius},周长是$girth";
    
    ?>
    
    

    传值实际参数不会改变,传址,实际参数会发生改变

    全局变量计算值

    • 全局变量在函数外定义,函数中添加global就可以使用全局变量,用于计算值

    <?php
    $a=5;
    $b=15;
    function fun(){
        global $a;
        $a=25;
        $b=35;
    }
    
    fun();
    echo $a."----".$b;  //输出25----15
    
    ?>
    

    :求圆的面积和周长

    <?php
    header("Content-Type:text/html;charset=utf-8");
    
    $girth=0;  //全局变量
    $radius=3;
    
    function area($r){
        global $girth;
        $girth=pi()*2*$r;  //这里计算出来的值会被传递到实际参数中
        $s=pi()*$r*$r;
        return $s;
    }
    
    $s=area($radius);
    echo "圆的面积是{$s},周长是{$girth}";
    
    ?>
    

    练习

    1. 用不同的方法计算长方体的体积和表面积
    2. 查找一个字符串中3的位置并保存到数组中,要求使用自定义函数和strpos函数

     

    以上内容均属原创,如有不详或错误,敬请指出。
    
    本文作者: 坏坏
  • 相关阅读:
    网络多线程 ---实现网络负载图片
    optimizer for eclipse--Eclipse优化,让你的Eclipse快来飞!
    ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第二章 ASM instance(1)
    IOS 开展 分别制定了iphone 和 ipad 好? 或开发一个 Universal好?
    DevExpress VCL 2014.1.2 for C++BUILDER XE6
    swift http请求返回json数据和分析
    Spark里面的任务调度:离SparkContext开始
    ftk学习记录(一个进度条文章)
    Appium Android Bootstrap控制源代码的分析AndroidElement
    别忽视了业绩比较基准
  • 原文地址:https://www.cnblogs.com/bad5/p/12731988.html
Copyright © 2020-2023  润新知