PHP函数及参数

函数

函数 function
作用: 偷懒

  • 函数分类:
    - 系统函数: 由PHP开发组所提供的一些函数, 我们只需要背记函数功能即可
    - 自定义函数: 功能是万能的, 完全根据用户的需求变化而变化

函数 function

  • 定义
    用来执行特定的任务, 简称: 功能
  • 分类
    系统函数: PHP开发组设计的数学, 数组, 字符串等相关函数
    自定义函数: 根据用户具体需求来封装函数
  • 自定义函数
function 函数名( 参数 )
{
  代码块
}
  • 关键字: function
  • 函数名: 不区分大小写
  • (参数): 形式参数, 简称: 形参
  • {代码块}: 函数主体, 功能具体的展现
  • 特性
    • 函数不调用不执行
    • 定义函数的位置 和 调用函数的位置 没有先后顺序要求
    • 函数从哪里调用, 最终也会回到哪里, 接着继续向下执行
    • 函数代码块如果存在语法错误, 不调用也会报错
  • 调用函数
    格式:
    函数名()
    函数名( 参数 )

函数命名

  • 组成: 由数字, 字母和下划线组成, 但不能以数字开头
  • 函数名不区分大小写
  • 命名形式: (提高代码可读性)
    • 驼峰式命名法: 从第二个单词开始, 首字母都大写 (小驼峰命名法)
    • 帕斯卡命名法: 每个单词的首字母都大写 (大驼峰命名法)
    • 匈牙利命名法: 每个单词之间用 下划线 隔开 (下划线命名法)
  • 函数名在同一作用域中不能重复
  • 函数名取的要有意义

返回值 return

  • 位置: 写在代码块里面
  • 作用: 立马结束函数, 并带着结果返回到 调用函数的地方
  • 返回值类型: 任何类型

问题: 如何一次性返回多个数据?
答案: 将多个数据 统一存放在一个数组中, 并return 数组

<?php
function demo()
{
    echo "最新的新闻: ";
    echo "熊猫宝宝.";
}
$a = demo();
var_dump($a);
echo '<hr>';
function demo2()
{
    echo "最新的新闻: ";
    echo "100";
    return "个";
    echo "熊猫";
    return "国宝";
}
$b = demo2();
var_dump($b);
echo '<hr>';
function demo3()
{
    $a = 100;
    $b = "熊猫";
    $c = "国宝";
    return [$a, $b, $c];
}
$c = demo3();
var_dump($c);
?>

参数

parameter 形参 缩写: param
argument 实参 缩写: arg

  • 参数分类:
    实际参数: 调用函数时给的参数. 简称:“实参”
    形式参数: 定义函数时给的参数. 简称:“形参”

  • 参数数量:

    • 实参个数 = 形参个数 完美
    • 实参个数 > 形参个数 多余的实参被抛弃掉, 遵守先来后到
    • 实参个数 < 形参个数
      • php 7.0-
        多余的形参, 要么采用默认值
        要么当成未定义变量
      • php 7.1+
        多余的形参, 要么采用默认值
        要么报错
    • 实参个数不确定
      func_get_args() 以数组形式接收所有的实参
      func_get_arg( N ) 只接收数组下标为N的实参
      func_num_args() 获取实参的总个数
      形参一个都别写
<?php
function demo($n1, $n2)
{
    echo '$n1 = '. $n1 .'<br>';
    echo '$n2 = '. $n2 .'<br>';
    $sum = $n1 + $n2;
    return $sum;
}
echo '结果: '.demo(10, 20);
echo '<hr>';
function demo2($n1, $n2)
{
    echo '$n1 = '. $n1 .'<br>';
    echo '$n2 = '. $n2 .'<br>';
    $sum = $n1 + $n2;
    return $sum;
}
echo '结果: '.demo2(10,20,30,40,50,60);
echo '<hr>';
// function demo3($n1, $n2)
// {
//     echo '$n1 = '. $n1 .'<br>';
//     echo '$n2 = '. $n2 .'<br>';
//     $sum = $n1 + $n2;
//     return $sum;
// }
// echo '结果: '.demo3(60);
// echo '<hr>';
function demo4($n1=500, $n2=800)
{
    echo '$n1 = '. $n1 .'<br>';
    echo '$n2 = '. $n2 .'<br>';
    $sum = $n1 + $n2;
    return $sum;
}
echo '结果: '.demo4(60);
echo '<hr>';
function add()
{
    $all = func_get_args();
    // $data = func_get_arg(5);
    $count = func_num_args();
    var_dump($all);
    // $sum = 0;
    // $sum = $sum + $all[0];
    // $sum = $sum + $all[1];
    // $sum = $sum + $all[2];
    // $sum = $sum + $all[3];
    // $sum = $sum + $all[4];
    // $sum = $sum + $all[5];
    // $sum = $sum + $all[6];
    // $sum = $sum + $all[7];
    // $sum = $sum + $all[8];
    $sum = 0;
    for ($i=0; $i < $count; $i++) { 
         $sum = $sum + $all[ $i ];
    }
    return $sum;
}
echo  add(10,20,30,40,50,60,70,80,90);
echo '<br>';
echo  add(10,20);
echo '<br>';
echo  add(10,20,30,40,100);
echo '<br>';
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值