PHP中函数的用法

一、PHP函数
(一)函数定义(函数也称为方法)
1.一个被命名的
2.独立的代码段
3.执行特定的任务
4.给调用它的程序返回值
比如验证登陆、检测用户注册等场合,为了避免代码冗余或者重复劳动,就可以编写一个验证的函数,每次检测时就可以调用这个函数
(二)函数特点
1.减少程序运行的复杂性
2.提高程序的可靠性
3.提高软件的开发效率
4.提高程序的可维护性
5.提高程序的重用性
(三)函数声明和使用
1.函数声明:
(1)function 函数名(参数1,参数2,参数3=默认值…){ 函数体 }
(2)function 函数名(){ 函数体} //没有返回值称为一个过程
(3)function 函数名(参数1,参数2,参数3=默认值…){ 函数体 ;返回值;}
(4)function 函数名(){ 函数体;返回值;}
函数声明时名称既不能跟系统定义的函数重名也不能跟自己之前定义过的函数重名,
函数体:完成某一功能的代码,可以直接输出结果,或者返回结果值,这时需要用return语句
函数必须调用才能执行,可以在声明之前调用,也可以在声明之后调用
2.函数调用
(1)形参:在函数声明时声明的参数(变量),多个参数用逗号隔开
(2)实参:函数调用时传入的值,实参形参是一一对应的,可以是数据也可以是变量
(3)返回值:如果没有返回值则称为过程
(4)通过return语句返回数据 函数执行到return语句就结束执行,在return语句后不要再有任何输出,也可以用return语句去结束函数的执行

<?php function userinfo($name,$gender,$addr='北京'){ echo "
用户名为:".$name; echo "
性别为:".$gender; echo "
地址为:".$addr; } userinfo("jack","男","england"); userinfo("Lily","女","湖南"); userinfo("小明","男"); ?> <?php function getTable($tab_name,$width,$rows,$cols,$color1,$color2){ echo ''; echo '

'.$tab_name.'

'; $row = 1; while($row<=$rows){ if($row%2==0){ echo ""; }else{ echo ""; } $col = 1; while($col<=$cols){ echo ''; $col++; } echo ""; $row++; } echo "
'.$col.'x'.$row.'='.($col*$row).'
"; } getTable('乘法表',1000,7,9,'yellow','pink'); ?>

(四)PHP的变量的范围
1.局部变量
在函数中声明的变量,只能在自己的函数内部使用

<?php function demo(){ $a = 10; echo $a; } function test(){ echo $a; } demo(); test(); ?>

2.全局变量
PHP不能区分函数是声明还是被调用 需要借助global关键字将变量包含到函数中,这样才是全局变量

<?php $a = 5; function demo(){ global $a; $a+=10; echo $a; } function test(){ global $a; $a+=5; echo $a; } echo $a.'--11111
'; echo demo().'
'; echo $a.'--222222222
'; echo test()."
"; echo $a.'--333333333
'; echo demo()."
"; ?>

3.静态变量
统计函数调用次数的类似程序
在一个函数一次调用可以多次共享

<?php function test(){ static $a = 1; $a++; echo $a.'
'; } test(); test(); test(); test(); ?>

4.变量函数
如果一个变量后有$var=’hello’; $var(),就将寻找与变量值同名的函数hello()

<?php function one($a,$b){ $num = $a + $b; return $num; } function two($a,$b){ return $a*$a+$b*$b; } function three($a,$b){ return $a*$a*$a+$b*$b*$b; } $var = 'one'; $var = 'two'; $var = 'three'; echo $var(3,2); (五)函数的使用方法 1.函数功能决定是否使用这个函数 2.函数的参数决定函数怎么调用,知道有几个参数、传什么类型的值、可以传几个 3.函数的返回值决定调用后怎么处理这个函数 3.外部函数 require() 静态包含,一个文件如果出现错误,程序就会停止执行,出现致命错误 include() 动态包含,一个文件出现错误程序也会继续执行,只显示一个错误警告 避免重复包含:require_once() include_once() PHP系统函数 1.echo() 可以同时输出多个字符串,多个值之间用逗号分隔。 echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。 echo函数中,可以同时输出多个字符串,echo的效率相对比较快echo 'a','b','c'; 如果你非要加上圆括号,注意写成echo ('a','b','c');是错误的,应该写成:echo ('a'),('b'),('c'); 2.print() 只能同时输出一个字符串,打印一个值(它的参数)有返回值为int值 同样是语言结构 3.print_r() 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。 但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。 4.var_dump() 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。 5.sprintf 格式化字符串 sprintf(format,arg1,arg2,arg++) 参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值: %% - 返回百分比符号 %b - 二进制数 %c - 依照 ASCII 值的字符 %d - 带符号十进制数 %e - 可续计数法(比如 1.5e+3) %u - 无符号十进制数 %f - 浮点数(local settings aware) %F - 浮点数(not local settings aware) %o - 八进制数 %s - 字符串 %x - 十六进制数(小写字母) %X - 十六进制数(大写字母) trim($str[,"a",STR_PAD_BOTH])// 去除两边/左/右的空白或"a",默认是空白,或自定义字符 strlen($string);成功则返回字符串 $string 的长度 isset($a)//当$a=NULL 或不存在,返回false,反之为true empty($a)//当$a=NULL/ ''/ array() / 0 / '0'/不存在 时 返回true,反之为false strtotime('2015-10-10 10:10:10');//指定时间转换为时间戳 date(“Y-m-d H:i:s”,时间戳) date_default_timezone_set()('PRC');//设置时区为中国 date.timezone ="PRC";//PHP.INI time();//默认获取当前时间,【返回时间戳格式】 s micritime();//获取当前时间【返回毫秒的时间戳】 mktime(H,i,s,m,d,Y)//指定时间转为时间戳,参数为空的时候作用与time()相同 rand(10,100)//随机取值 # 欢迎使用Markdown编辑器 你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ## 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 1. **全新的界面设计** ,将会带来全新的写作体验; 2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示; 3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 4. 全新的 **KaTeX数学公式** 语法; 5. 增加了支持**甘特图的mermaid语法[^1]** 功能; 6. 增加了 **多屏幕编辑** Markdown文章功能; 7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间; 8. 增加了 **检查列表** 功能。 [^1]: [mermaid语法说明](https://mermaidjs.github.io/) ## 功能快捷键 撤销: Ctrl/Command + Z 重做: Ctrl/Command + Y 加粗: Ctrl/Command + B 斜体: Ctrl/Command + I 标题: Ctrl/Command + Shift + H 无序列表: Ctrl/Command + Shift + U 有序列表: Ctrl/Command + Shift + O 检查列表: Ctrl/Command + Shift + C 插入代码: Ctrl/Command + Shift + K 插入链接: Ctrl/Command + Shift + L 插入图片: Ctrl/Command + Shift + G 查找: Ctrl/Command + F 替换: Ctrl/Command + G ## 合理的创建标题,有助于目录的生成 直接输入1次 #,并按下 space后,将生成1级标题。 输入2次 #,并按下 space后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。 ## 如何改变文本的样式 *强调文本* _强调文本_ **加粗文本** __加粗文本__ ==标记文本== ~~删除文本~~ > 引用文本 H~2~O is是液体。 2^10^ 运算结果是 1024. ## 插入链接与图片 链接: [link](https://mp.csdn.net). 图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw) 带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30) 居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center) 居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30) 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 ## 如何插入一段漂亮的代码片 去[博客设置](https://mp.csdn.net/configure)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`. ```javascript // An highlighted block var foo = 'bar'; ``` ## 生成一个适合你的列表 - 项目 - 项目 - 项目 1. 项目1 2. 项目2 3. 项目3 - [ ] 计划任务 - [x] 完成任务 ## 创建一个表格 一个简单的表格是这么创建的: 项目 | Value -------- | ----- 电脑 | $1600 手机 | $12 导管 | $1 ### 设定内容居中、居左、居右 使用`:---------:`居中 使用`:----------`居左 使用`----------:`居右 | 第一列 | 第二列 | 第三列 | |:-----------:| -------------:|:-------------| | 第一列文本居中 | 第二列文本居右 | 第三列文本居左 | ### SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如: | TYPE |ASCII |HTML |----------------|-------------------------------|-----------------------------| |Single backticks|`'Isn't this fun?'` |'Isn't this fun?' | |Quotes |`"Isn't this fun?"` |"Isn't this fun?" | |Dashes |`-- is en-dash, --- is em-dash`|-- is en-dash, --- is em-dash| ## 创建一个自定义列表 Markdown : Text-to-HTML conversion tool Authors : John : Luke ## 如何创建一个注脚 一个具有注脚的文本。[^2] [^2]: 注脚的解释 ## 注释也是必不可少的 Markdown将文本转换为 HTML。 *[HTML]: 超文本标记语言 ## KaTeX数学公式 您可以使用渲染LaTeX数学表达式 [KaTeX](https://khan.github.io/KaTeX/): Gamma公式展示 $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ 是通过欧拉积分 $$ \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. $$ > 你可以找到更多关于的信息 **LaTeX** 数学表达式[here][1]. ## 新的甘特图功能,丰富你的文章 ```mermaid gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section 现有任务 已完成 :done, des1, 2014-01-06,2014-01-08 进行中 :active, des2, 2014-01-09, 3d 计划一 : des3, after des2, 5d 计划二 : des4, after des3, 5d ``` - 关于 **甘特图** 语法,参考 [这儿][2], ## UML 图表 可以使用UML图表进行渲染。 [Mermaid](https://mermaidjs.github.io/). 例如下面产生的一个序列图: ```mermaid sequenceDiagram 张三 ->> 李四: 你好!李四, 最近怎么样? 李四-->>王五: 你最近怎么样,王五? 李四--x 张三: 我很好,谢谢! 李四-x 王五: 我很好,谢谢! Note right of 王五: 李四想了很长时间, 文字太长了
不适合放在一行. 李四-->>张三: 打量着王五... 张三->>王五: 很好... 王五, 你怎么样? ``` 这将产生一个流程图。: ```mermaid graph LR A[长方形] -- 链接 --> B((圆)) A --> C(圆角长方形) B --> D{菱形} C --> D ``` - 关于 **Mermaid** 语法,参考 [这儿][3], ## FLowchart流程图 我们依旧会支持flowchart的流程图: ```mermaid flowchat st=>start: 开始 e=>end: 结束 op=>operation: 我的操作 cond=>condition: 确认? st->op->cond cond(yes)->e cond(no)->op ``` - 关于 **Flowchart流程图** 语法,参考 [这儿][4]. ## 导出与导入 ### 导出 如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 **文章导出** ,生成一个.md文件或者.html文件进行本地保存。 ### 导入 如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 继续你的创作。 [1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference [2]: https://mermaidjs.github.io/ [3]: https://mermaidjs.github.io/ [4]: http://adrai.github.io/flowchart.js/
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值