【PHP】函数
一、 数学中的函数:
a) sin()、cos()、tan()、log() 这些都是数学函数,但是都已经忘了啥意思了!没关系,在php当中的函数和这些函数的概念还是有一定的区别的
二、 生活中的函数:
a) 定义:某一个具有名字的工具,它能够完成一些指定的任务!这样的东西,我们就可以称之为一个函数!
b) 举个例子:
i. 石头:它的名字就是石头,它的作用就是砸核桃,攻击!
ii. 长矛:它的名字就是长矛,它的作用是插、扎、刺、砍!
iii. 打火机:它的名字就是打火机,它的作用就是点烟,点火,放炮……
iv. 小米:它的名字是小米,它的作用可以吃,还可以打电话!
v. 锤子:它的名字是锤子,它的作用可以钉钉子,还可以打电话,按摩
vi. 三星:它的名字是三星,它的作用可以打电话,爆破!
三、 为啥要使用函数?
a) 1.使用函数可以让我们的工作效率更高【代码效率更高】
b) 2.它能够使我们的代码更简洁
c) 3.它更易于维护!
四、 PHP当中的函数:
a) 定义:能够完成指定任务的,还得是已命名的代码块,这就是php当中的函数!
b) 函数的分类:
i.系统函数:
1. 其实我们已经见过了很多的系统函数了!但是之前我都叫他小工具!我都是昧着良心叫的
2. 例如:var_dump()、isset()、empty()、settype()、gettype()、is_int()、is_float()……………这些系统已经定义好的函数,都是系统函数!
3. 如何来使用一个系统该函数(看手册)?
a) 看函数的功能
b) 看函数的参数
c) 看函数的返回值
d) 看函数的一些实例
ii. 自定义函数:
1. 需要自己手动去创造的函数,就属于自定义函数,它是系统函数当中不存在的那些函数!
五、 你的第一个自定义函数:
a) 定义函数的几个步骤:
i. 写程序代码
ii. 给程序代码外面加上花括号
iii. 花括号前方起了一个名字,并且加上了小括号
iv. 最后才在最前方加上了function关键
b) 关于函数的命名规则:
i. 字母数字下划线组成、不能使用数字开头,不区分大小写,不能重复定义,不能使用关键字命名!
c) 关于函数的使用方法:
i. 直接将函数名字拿过来用即可
ii. Function 函数名(参数1[,参数2,参数3,…]){
函数体;
iii. }
iv. 使用:函数名()
d) 关于函数的参数:
i. 形参:
1. 定义:形式上的参数
2. 形参,是我们在定义一个函数的时候,写在函数名后方小括号当中的变量的内容
3. 形参可以定义多个,但是一定要有意义
4. 多个形参之间使用逗号隔开
5. 形参的个数可以使无数个
ii.实参:
1. 定义:实际上的参数
2. 实参,是我们在调用一个函数的时候,写在小括号当中的实际内容
3. 实参也可以定义多个,但是一定要和形参是一一对应的!
4. 实参之间也是使用逗号隔开的!
5. 实参的值也可以是存值的变量
iii. 默认值:
1. 在某些情况下,函数的某一个参数可能是固定的值不变,因此这种情况下,我们通常胡给定那个参数一个默认值!
2. 只有形参当中有默认值的情况下,实参和形参的数量可以不一一对应,这是一个例外情况
3. 拥有默认值的形参,必须放到参数列表的后方
4. 拥有默认值的形参,实参处可以不给定值,但是,如果实参处给定了具体的值,则实参的值会覆盖形参的值
iv. 函数的使用位置:
1. 函数的使用可以在函数之前,也可以在函数之后
2. 原因:当程序执行某一个脚本,会将脚本当中的所有函数存放到缓冲区当中,缓冲区是内存当中的一个区块,所以,无论在当前脚本的任何位置,都是可以调用缓冲区当中的函数的!
v. 函数当中的return关键字:
1. 我们通常使用的函数,都是将结果保存下来,而非直接输出,因此,在函数中使用return关键字,可以将结果返回到调用处,并且保存下来!
2. Return后面的代码一概不执行,在PHP当中不会报错,但是在JAVA当中会直接报错,并告诉你,这里的代码是永远无法到达的代码,建议删除!
vi. 变量的作用域:
1. 因为函数的出现,导致了变量作用域的不同!
2. 全局变量
a) 定义:在php脚本当中所定义的变量就属于全局变量!
b) 全局变量作用域当前整个脚本!
c) 在函数当中如果想要使用一个全局变量,需要使用global关键字来将外部的全局变量叫到函数内部
3. 局部变量
a) 定义:在函数当中所定义的变量,叫做局部变量!
b) 局部变量只作用于函数内部!
4. 静态变量(了解!)
a) 定义:在函数当中使用static关键字声明的变量就属于一个静态变量。
b) 静态变量会保留上次执行完的结果,而且静态变量在函数中赋初值的操作只执行一次!
c) 原理:当第一次调用拥有静态变量的函数,静态变量的值会直接存储到静态区当中,当下一次在调用该函数的时候,会首先去静态区当中寻找是否已经拥有该静态变量,如果有直接拿过来使用。
5. 超全局变量(了解):
a) $GLOBALS:包含所有的超全局变量!
1. $_SERVER:服务器和执行环境信息
2. $_GET:通过URL参数传递给当前脚本的变量的数组
3. $_POST:通过HTTP POST方法传递给当前脚本的变量
4. $_FILES:保存文件的上传信息
5. $_COOKIE:通过HTTP Cookies方式传递给当前脚本的信息
6. $_SESSION:当前脚本可用 SESSION 变量的数组
7. $_REQUEST:包含GET、POST和COOKIE信息的集合
vii.关于函数库的引入:
1. 函数库其实就相当于一个工具箱,当我们需要使用工具箱当中的某一个工具的时候,直接将工具箱拿过来即可!
2. Include(“”) 或 include “”;
a) 常用于引入一些并非非常重要的函数库
b) 如果include方法引入文件失败,会提示一个warning级别的错误,但是脚本依然可以执行!
3. Require(“”) 或 require “”;
a) 常用于引入一个对当前脚本非常重要的函数库
b) 如果require方法引入文件失败,会提示一个Fatal级别的错误,这是致命错误,将会中断整个脚本的执行!
4. Include_once
a) 如果重复引入一个文件,include_once代表只引入一次当前文件!
b) 其他特点同上!
5. Require_once
a) 如果重复引入一个文件,require_once代表只引入一次当前文件
b) 其他特点同上!
viii.可变参数个数的函数!(了解)
1. Func_num_args() 获取实参总个数!
2. Func_get_args() 获取实参列表的详细信息
在这个列表当中,0-5代表下标,10-60代表对应的值
3. Func_get_arg() 获取指定下标的实参信息
ix.引用函数:
1 function demo(&$num1){
$num1=200;
}
$num1=100;
demo($num1);
echo $num1;
1. 注意:
a) 使用引用函数概念是,要注意,在实参处存放的值应当是一个变量,而不是一个实际的值,因为值没有地址,变量有地址!
x.变量函数[ 回调函数 ]:
1. 定义:将一个函数的名字作为一段字符串,赋值给一个变量,则该变量名可以作为函数名去使用!
xi.回调函数:(了解!)
1. 定义:一个函数当中可能会调用另外的一个函数,这就是一个回调函数!
2. 注意:
a) 回调函数会使用到变量函数的概念!
b) 回调函数通常是应用在一些对于主程序的规则限制的作用
xii.递归函数:
1. 递:进去
2. 归:出来
3. 递归其实就是函数自己玩自己!
【PHP】函数的更多相关文章
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- javascript中的this与函数讲解
前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- JS核心系列:浅谈函数的作用域
一.作用域(scope) 所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. function scope(){ var foo = "global&quo ...
- C++中的时间函数
C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ...
- Python高手之路【四】python函数装饰器
def outer(func): def inner(): print('hello') print('hello') print('hello') r = func() print('end') p ...
随机推荐
- MATLAB神经网络(3) 遗传算法优化BP神经网络——非线性函数拟合
3.1 案例背景 遗传算法(Genetic Algorithms)是一种模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法. 其基本要素包括:染色体编码方法.适应度函数.遗传操作和运行参 ...
- TCP建立连接(三次握手)
TCP的三次握手 TCP作为可靠稳定的传输方式要建立会话,会话的发起者是请求者(客户机),下文中A为客户机,B为服务器. 1.客户机(A)从closed状态转化为主动打开,服务器(B)此时从close ...
- 使用Github Packages功能上传nuget包到Github
前几天微软收购npm的新闻对于软粉来收很是振奋.微软收购npm很可能是为了加强Github Packages.目前Github,Typescript,VSCode,npm这些开源社区的重磅工具全部都在 ...
- 详解如何快速使用数据可视化BI软件创建医疗运营监控数据中心大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以医疗运营监控数据中心大屏 ...
- MyBatis框架——动态SQL
MyBatis 作为⼀个“半⾃动化”的 ORM 框架,需要开发者⼿动定义 SQL 语句. 在业务需求⽐较复杂的情 况下,⼿动拼接 SQL 语句的⼯作量会⾮常⼤,为了适⽤于不同的业务需求,往往需要做很多 ...
- C# Linq方式生成SAP对接的XML格式内容(一般处理程序 ashx )
Linq生成XML的方法: string CreateXML(string strkey, string strDATAJSON) { XDeclaration dec = new XDeclarat ...
- Windows下利用Chrome调试IOS设备页面
本文介绍如何在 Windows 系统中连接 iOS设备 并对 Web 页面进行真机调试 必须前提 iOS设备.数据线 Node.js 环境 Chrome 浏览器 环境准备 安装Node环境 参考Nod ...
- 洛谷1258 Tire字典树
直接上代码: #include<bits/stdc++.h> using namespace std; typedef unsigned int ui; typedef long long ...
- [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem
链接:https://ac.nowcoder.com/acm/contest/889/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...
- Python第六章-函数04-递归函数和拉姆达表达式
五.递归函数 什么叫递归(recusive)? 你拿两个镜子互相面对着, 然后去看镜子, 会发现每个镜子中很多个镜子, 层层的嵌套, 无穷尽, 这就是一种递归! 从前有坐山, 山里有座庙, 庙里有个老 ...