函数
函数 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+
多余的形参, 要么采用默认值
要么报错
- php 7.0-
- 实参个数不确定
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>';
?>