开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1222|回复: 0
收起左侧

[PHP相关教程] PHP - 函数的参数

[复制链接]
发表于 2020-7-15 18:59:01 | 显示全部楼层 |阅读模式   山东省德州市

参数

  • 调用者可以通过参数将数据传递到函数中
  • 参数是以逗号分隔的表达式列表
  • 参数按照从左到右的顺序求值

参数类型

序号 类型 描述
1 值参数 默认传参方式
2 引用参数 改变原始调用参数值
3 默认参数 调用时允许省略的参数
4 剩余参数 调用参数数量不确定
// 值参数

function demo(float $arr):float
{
    return $arr*=2;
}
$de = 100;
echo $de.'<br>';
 echo demo($de);
 echo '<hr>';

//  引用参数
//如果在参数前面是用了取地址符,则会改变原始调用参数的值
//
function demo1(float &$arr):float
{
    return $arr*=2;
}
$de = 100;
 echo demo1($de).'<br>';
 echo $de.'<br>';
 echo '<hr>';

 //默认参数
// 默认参数一定不能写在必选参数前面,必须写在后面
 function demo2(float $a , float $b ,string $opt = '+'):string
 {
     $res = 0 ;
     switch ($opt) {
         case '+':
             $res =  "$a + $b = ".($a+$b);
             break;

             case '-':
             $res = "$a - $b = ".($a-$b);
             break;

             case '*':
            $res = "$a * $b = ".($a*$b);
             break;

             case '/':
             $res = "$a / $b = ".($a/$b);
             break;

         default:
            $res ='类型不对';
     }
     return $res;
 }

 echo demo2(2,3,'+');
 echo '<hr>';

// 剩余参数
// func_num_args()  参数数量
// func_get_arg() 根据索引返回指定的调用参数
//func_get_args()  返回为数组

function demo3()
{
    $total = 0 ;
    for ($i=0; $i <func_num_args(); $i++) {
        $total += func_get_arg($i);
    }
    return $total;
}

echo demo3(1,2,1,2,12,12,12,1,21,2,12,5);
echo '<hr>';
//还有一种方法 foreach
function demo4()
{
    $total = 0;
    foreach (func_get_args()  as $value) {
        $total += $value;
    }
    return $total;
}

echo demo4(1,12,13,35,231,2,12,5,12,1,1);
echo '<hr>';

// 还可以用剩余参数来做
//  ... 参数归纳符 参数展开
// array_sum() 数组求和
// array_product() 数组求积

function demo5(...$args)
{
//    求和
    // return array_sum($args);
    // 求积
return array_product($args);
}

echo demo5(32,32,23,32,4,65,5,1635,13543,4,53,53,53,5);

// 我们还可以将这些值保存到一个数组中
$adv = [32,32,23,32,4,65,5,1635,13543,4,53,53,53,5];

// 访问的时候将其展开
echo demo5(...$adv);

// ... 用在函数的形式参数列表中表示归纳
// 用在函数的调用参数列表中表示展开

// 课外扩展解包

$user[] = [100,150,'多多'];
$user[] = [150,160,'小明'];
$user[] = [120,160,'小红'];
$user[] = [106,170,'小兰'];
$user[] = [130,120,'小路'];
$user[] = [180,190,'小老'];

foreach ($user as list($tizhong,$shengao,$name)) {
   printf('体重=%s,身高=%s,姓名=%s <br>',$tizhong,$shengao,$name);

}

// 输出
// 体重=100,身高=150,姓名=多多
// 体重=150,身高=160,姓名=小明
// 体重=120,身高=160,姓名=小红
// 体重=106,身高=170,姓名=小兰
// 体重=130,身高=120,姓名=小路
// 体重=180,身高=190,姓名=小老

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表