# 函数也叫方法
## 下面是语法:
```
runction user(){
return 返回值;
}
调用
echo user();
```
——————————————————————————————————————————————————————————
# 参数传递点语法与传址
&类似于指针传址
~~~
<?php
function show(&$var):int{
$var++;
return $var;
}
//传值 地址
$var=1;
echo show($avr); //1
echo show($avr); //2
echo show($avr); //3
~~~
这样函数外面的$var值也就随着函数内的值变动而变动了,与静态(static)变量方法相同
## 三点语法
```
function sum(...$vars){
print_r($vars);
}
sum (1,2,3,4,5,6,7,8,9,0,10); 传递多个参数的值
```
## ...三点语法用于接收参数数量不定的参数。
##
## sum返回一个数组。
##
——————————————————————————————————————————————————————————
# declare与参数裂隙约束(严格模式)
```
function show (int $num){
return $num;
}
show() //这里如果传入其他类型就会报错但是。
```
## declare(严格模式)
## declare(strict_types=1);
```
declare与参数类型约束 //严格模式 进制类型自动转换
declare(strict_types=1);
function show (int $num){
return $num;
}
show() // 这里如果输入字符串类型的1,2,3,等等都不行。
```
**
其他类型也是这样的写法都可以参照以上int类型的写法**
——————————————————————————————————————————————————————————
# 函数返回值约束
## 语法:
return 这里必须返回字符串否则错误;
```
function sun(): string
{
return 这里必须返回字符串否则错误;
}
```
### ?string
return 这里返回的可以是字符串也可也是别的类型的参数;
```
function sun(): ?string
{
return 这里返回的可以是字符串也可也是别的类型的参数;
}
```
## 函数引用外部变量
##
##函数中引入全局变量(函数引入函数以外的变量)
~~~
<?php
$name="向军大叔";
function show ()
{
$name=$GLOBALS['name'];
return $name;
}
echo show();
~~~
## 系统内置回调函数
## call_user_func_array('函数名称',[参数以数组形式出现])
```
function show ($a,$b)
{
$c=$a+$b';
echo $c;
}
call_user_func_array('show',[100,20])
; //等于调用函数
```
## 闭包函数
闭包函数==JS里的事件函数,也是写死一个方法可以一直方便调用
语法:
```
$a=fuction(){
$c=$a+$b;
echo $c;
}
```
代码案例:
~~~
<?php
$a=function(){
$a=100;
$b=500;
$c=$a+$b;
return $c;
};
function xiao($c){
echo $c();
}
xiao($a);
~~~
# use 关键字
```
$str='hello world111';
$a=function() use($str){
echo $str;
};
$a();
```
## use等于把外部变量传入函数里去
代码如下:
~~~
<?php
$c=100;
$d=200;
$a=function()use($c,$d){
$y=$c+$d;
return $y;
};
function xiao($c){
echo $c();
}
xiao($a);
~~~
## 函数注释规范
```
/**
@函数用途说明
@param $变量 数据类型
@param $变量 数据类型
@return 数据类型
*/
```
- 变量删除查找与static静态变量
- 赋值原理
- global涵数引入全局变量使用
- 数据类型
- 数据类型判断is_
- PHP输出
- PHP指针(取址运算)
- PHP运算符
- 常量
- 字符串
- 字符串添加反斜杠函数addslashes($变量)
- htmlspecialchars()转字符实体
- int strcmp()判断2个字符串大小
- strstr() 查找字符串
- 字符串常用系统内置函数
- 控制流之if
- switch判断方法
- while循环
- for循环
- 跳出循环
- PHP文件引文入( include与require)
- PHP文件引入include_once与require_once
- 函数(函数各种应用以及约束方法)
- global 引入函数外的变量
- 函数的递归
- 数组(遍历方法)与( foreach()遍历方法)
- 数组函数
- PHP时间操作
- 常用数学内置函数
- 正则表达式
- PHP 九大超全局变量(内置的)
- 超全局变量$_SERVER的详细介绍
- PHP类
- 类的$this
- 类的构造方法__construct()
- 类的修饰符 public private protected
- 类的继承
- 类的多态(instanceof)方法
- 类的静态方法与常用关键字(final static self parent clone )
- 类的__set() __get() 方法
- 类的重载
- 类的__call()与__callstatic()方法
- 类的抽象类与方法
- 抽象类接口interface (实现子类继承多个抽象类)
- 类的trait (解决单继承的限制)
- 命名空间
- 类的魔术常量以及系统函数
- mysql数据库
- 数据库的概念
- SQL语句规范
- 数据库字段类型
- 字段是属性(创建数据库字段用)
- 数据库操作(增删改)
- 数据表与字段(DDL)(增删改)
- 数据的操作(DML)(增删改)
- 数据的查询数据(最重要最核心经常看)
- 数据库 字符集 引擎 校对等
- cookie创建使用与删除
- session创建使用与删除
- 在cookie禁止的情况下session的使用方法
- session的配置以及session与cookie的区别
- session实战登录
- PHP文件处理函数
- PHP打开读取写入文件
- file_get_contents GET请求接收
- PHP文件上传以及过大报错解决方案
- 验证并控制上传格式与大小
- 判断是否有目录(如果没有就创建目录)
- 上传文件到目录move_uploaded_file()
- 图片上传用class写法
- PDO链接数据库与exec()使用(只能用于增,删,改)
- PDO-推荐方法prepare() 增删改查
- 关于PDO类种事务使用
- 类的单例模式写法
- 自动加载autoload()
- composer安装与使用
- PHP操作XML
- PHP操作JSON
- curl GET与POST请求接收
- 自己封装的一些实用函数
- 微信公众号开发
- 常见问题以及解决
- PHP反序列化HTML
- try catch尝试执行与异常
- json 对象转字符串数组的方法可以在用json_e转数组