PHP[入门]P11-函数再认识
这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。
day11-函数再认识
//注意: 定义函数定义了形参没有给默认值,调用函数的时候会包warning错误缺少参数
回调函数我们要传入可以调用的函数名,那如果传参数是错误的,防止错误的方式
加上判断,判断传入的回调函数名是否正确或者是否可以调用
递归函数:
核心思想:
自己调用自己的一个过程
主要三个组成部分:
自己调用自己
结束条件
核心的逻辑块
优点:
高大上代码
缺点:
效率低,占用内存大,而且可读性差 //大多数人都理解99%
引用传参:
使用方式:
eg:
function show(&$str)
{
echo $str;
}
show($str);
:
1.引用时两个变量指向同一个存储空间
那么在传实参的时候必须传的是变量
2.引用传参的 &必须放在的是我们的形参中
3.使用引用传参 在函数内部改变参数的值,函数外部的值也会改变
4.在使用引用传参时,如果传的是一个没有定义的变量不会报错,相当于定义了一个变量
可变参数类型
func_num_args() //返回的是调用时候实参参数的个数
func_get_args()//返回的是实参列表中所有的值 类型是数组
func_get_arg($i) // 返回的是指定的实参中的某一项
... php7.0新特性:
1.function show($str, $str2)
{
var_dump($str);//1
var_dump($str2);//2
}
$arr = [1, 2, 3];
show(...$arr); //传实参时候传的是数组,用了...以后将实参数组解析然后依次赋值给函数的形参
- function show(...$arr)
{
var_dump($arr);
}
show(1, 2, 3, 4, 5);
//jiang shican zhong de canshu liebiao jiexi cheng shuzu
include require include_once require_once:区别
include :包含文件并执行 参数:文件路径跟名字
如果包含错误 报的是警告的一个错误 但是不影响程序的继续执行
require :包含文件参数文件的路径
如果包含错误 报的是致命的错误影响程序的继续执行(程序不会往下执行)
include_once :包含文件 在包含文件时候首先判断是否已经引入如果有不执行包含如果没有不包含
require_once : 同理
declare(strict_types = 1);
function show( string $str)
{
var_dump($str);
}
show('2');
//形参中使用类型定义以后 传参要穿指定的类型,但是因为我们的PHP属于弱类型语言,如果定义的是int传入的是'2'会自动转成int 我们加上declare指令 以后强制传入指定的类型
function show($str):string
{
return $str;
}
//要求的是函数的返回值类型 如果我们在传实参时候传的是int 返回默认转成string 如果使用declare指令 那么要求传的实参也是string
---------------
函数的注释
/**
* @name 累加函数
* @author wlj wanglijuan@1000phone.com
* @param int(mixed) $num 累加开始值
* @param int $num2 累加结束值
* @return array
*/
---------------
超全局变量
$GLOBALS
$_COOKIE 得到会话控制中cookie传值
$_SESSION得到会话控制中session的值
$_FILES得到文件上传的结果
$_GET得到get传值的结果 //
$_POST得到post传值的结果//
$_REQUEST即能得到get的传值结果,//
也能得到Post传值的结果
__FUNCTION__
----------------
手册使用找规律
1. 看函数的功能和版本
2. 看返回值 var_dump() gettype() isset() empty()
3. 看传入的参数要求是什么 copy(复制谁,复制到哪儿去)
4. 看到[](中括号)代表可选,参数可传可不传
5. ... 就是后面可以传入任意多个参数
6. & 就必须要传变量,并且函数会改变原变量的值
7. Mixed 可传入任意类型
8. Callback 就是可以传入回调函数
9. 有没事看手册