欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP学习 Day_07——自定义函数

程序员文章站 2024-03-14 13:59:10
...


【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}";

?>
以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏
相关标签: PHP学习笔记整理

上一篇: LeetCode 443. 压缩字符串

下一篇: