函数初认识
函数是实现代码复用的重要手段。
函数一般分为 系统函数 和 自定义函数。
函数 基本都会有 return 返回值,若没有,PHP中默认返回 NULL。
PHP 中作用域分为 函数作用域和全局作用域。
超全局变量,全局变量使用
只要是定义在函数外的变量就是 全局变量;
在此基础上,不需要声明的 全局变量 便是 超全局变量,比如 $_GET, $_POST等,都存在 $GLOBALS 这个变量中
在 PHP 中,函数访问 全局变量 不能直接访问
function fun1(){ // 1.和 js不同,函数内部不能直接访问全局变量,需要进行声明 // 在函数里访问 全局变量需要先 声明一下 global $name; echo $name; // 2. 利用 $GLOBALS 数组访问,超全局变量可以直接使用 echo $GLOBALS['name']; }
这里 认识一下 $GLOBALS 变量
新增的 全局变量 会自动成为 $GLOBALS 的一个键值对。
函数参数
在PHP中 函数 的形参设置但是不传实参的话是会报错的(比较严格),所以需要对于一些形参进行设置默认值(所以你要么就别放形参,放了形参就要注意是否有默认值 或者 是否都传了实参)
function fun1($a,$b=4) { // 考虑到 $b 可能不会有实参传入,所以设置一个默认值 return $a; } fun1(3); // 只传了第一个参数
关于参数的预设方法:
func_num_args() :返回实参数量
func_get_args() : 返回实参数组
func_get_arg(index) : 返回指定位置实参
这里来认识一下 剩余参数(又叫 变长参数,PHP7+新语法)
// ...$params 相当于将剩余传入的实参打包到一个数组变量中 function fun4($a, ...$params) { print_r($params); return '和为:'.array_sum($params); } echo fun4(2,3,4,5);
可以看到剩余参数都传入了一个数组中
计算不定参数的乘积, 要求使用到剩余参数来实现
function calc(...$params) { // 1. 使用 foreach 实现 $product = 1; foreach($params as $value) { $product *= $value; } return $product; // 2. 使用 array_product()求积方法一步实现 return array_product($params); }