本文实例讲述了PHP函数用法。分享给大家供大家参考,具体如下:

初始函数

函数:封装一段用于完成特定功能的代码。

通俗理解函数:可以完成魔鬼工作的代码块,就像积木一样,可以反复使用,在使用的时候,拿来即用。

函数定义:1)内置函数(字符串操作函数、数组操作函数)2)自定义函数

函数的基本语法格式

function 函数名([参数1.参数2,......]){

函数体......

}

函数的定义由一下四部分组成:

关键字function

function: 在声明函数时必须使用的关键字;

函数名functionName

函数名: 要符合PHP的标识符,且函数名是唯一的,不区分大小写

参数

[参数1,参数2…]: 在外界传递给函数的值,他是可选的,多个参数之间使用逗号“,”分隔。

函数体

函数体: 函数定义的主体,专门用于实现特定的代码段。

返回值: 需要使用return关键字将需要返回的数据传递给调用者。

参数设置

对于函数来说,参数的不同设置,决定了其调用和使用方式

无参函数

按值传递参数

PHP默认支持按值传递参数,按此种方式定义的函数,在函数内部可以睡衣对用户传递的参数进行操作。

引用传参

在开发中,若需要函数修改它的参数值,则需要通过函数的引用传递。实现方式只需要在参数中前添加“&”符号即可。

设置参数默认值

函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。

当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。

指定参数类型(弱)

在PHP 7.0及以上的版本后,在自定义函数时,可以指定参数具体时那种数据类型

当用户调用函数时,如果传递参数不是int类型。程序传递的参数不是int类型,程序会将其强制的转换为int型后,在进行操作,这种方式称为弱类型参数设置。

指定参数类型(强)

除此之外,还可以将其设置为强类型的参数,即当用户传递的类型不符合函数的定义,程序会报错提醒。

变量的作用域

变量在定义后,默认情况下,可以在函数中使用,函数外不可以。

变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域。

在函数中定义的变量称为局部变量

在函数外定义的变量称为全局变量

function test (){

$sum = 36; //局部变量

return $sum;

}

$sum = 0;//全局变量

echo text();//输出结果:36

echo $sum;//输出结构:0

那么如何在函数中使用全局变量呢?

答:参数传递,global关键字和超全局变量$GLOBALS。

$snap = "nihao";

function abc(){

global $snap;//全局变量的关键词,通常加在变量前。引用全局变量

return $GLOBALS["snap"];//引用外部变量。定义全局变量

}

echo abc();

函数的嵌套调用

嵌套调用

函数的嵌套调用: 指的是在调用一个函数的过程中,调用另外一个函数,这种在函数内调用其它函数的方式称为嵌套调用。

递归调用

递归调用: 是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调用自身的过程,这种函数成为递归函数

函数的高级应用

1. 静态变量

轻松得到函数被访问的次数,一是在函数中使用全局变量记录,缺点是全局变量可随时子啊函数外被改变,不能准确的记录;二是在函数中使用静态变量。

变量的作用域

局部变量: 在函数的内部定义的变量,其作用域是所在函数

全局变量: 被定义在所有函数以外的变量,其作用域是整个PHP文件,但在用户自定义函数内部是不可用的。如果希望在用户自定义函数内部使用全局变量。则要使用global关键字声明

静态变量: 能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值,而一般变量在函数调用结束后,其存储的数据值将被清除,所占的内存空间被释放。使用静态变量时,先要用static来声明变量,把关键字static放在要定义的变量之前。

2.可变函数

可变函数: 可变变量,他的实现是在一个变量前添加一个“¥符号”,就变成了另外一个变量。同理,可变函数的实现就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,然后PHP就寻找与变量值同名的函数,并且尝试执行它

3.回调函数

回调函数: 指的就是具有callable类型的函数,一般用作参数的传递。如PHP内置函数call_user_func()可以接受用户自定义的回调函数作为参数。

4. 匿名函数

匿名函数: 就是没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。对于临时定义的函数,使用匿名函数无需考虑函数命名冲突的问题

php的内置函数

字符串函数

字符串函数是PHP用来操作字符串的内置函数,在实际开发中有着非常重要的作用

截取给定路径中的字符串

$url = "C:webapache2.4htdocscat.jpg";

$pos = strrpos($url, "\");

// 截取文件名称,输出结果:cat.jpg

echo substr($url, $pos + 1);

// 截取文件所在的路径,输出结果:C:webapache2.4htdocs

echo substr($url, 0, $pos);

strrpos()函数用于在$url中获取“”最后一次出现的位置$pos。

substr()函数的第1个参数表示待截取的字符串,第2个参数表示开始截取的位置,非负数表示从字符串指定位置处截取,从0开始;负数表示从字符串尾部开始。第3个参数表示截取的长度。

substr()函数的第3个参数表示截取的长度,该长度的设置具体有以下4种情况。

省略第3个参数时,将返回从指定位置到字符串结尾的子字符串。

第3个参数为正数,返回的字符串将从指定位置开始,最多包含指定长度的字符,这取决于待截取字符串的长度。

第3个参数为负数,返回的字符串中在结尾处将有个指定长度的字符被省略。

第3个参数为0、false或null,将返回一个空字符串。

替换指定位数的字符

替换指定位数的字符,在开发也是很常见的功能。例如,在各种抽奖环节中,为了保证用户的隐私,出现的手机号一般使用“*”将第4至7位的数字进行覆盖

$tel = "18810881888"; // 随意输入一串数字作为手机号

$len = 4; // 需要覆盖的手机号长度

$replace = str_repeat("*", $len); // 根据指定长度设置覆盖的字符串

echo substr_replace($tel, $replace, 3, $len);// 输出结果: 188****1888

str_repeat()函数用于对“*”字符重复len次。substrreplace()函数用于对字符串 len次。substr_replace()函数用于对字符串" role="presentation" style="position: relative;">len次。substrreplace()函数用于对字符串len次。substrr​eplace()函数用于对字符串tel中第3个位置开始后的len长度的字符使用 len长度的字符使用" role="presentation" style="position: relative;">len长度的字符使用len长度的字符使用replace进行替换。

数字函数

为了方便开发人员处理程序中的数学运算,PHP内置了一系列的数学函数,用于获取最大值、最小值、生成随机数等常见的数学运算。

echo ceil(5.2);// 输出结果:6

echo floor(7.8);// 输出结果:7

echo rand(1, 20);// 随机输出1到20间的整数

ceil()函数是对浮点数5.2进行向上取整,

floor()函数是对浮点数进行向下取整,

rand()函数的参数表示随机数的范围,第1个参数表示最小值,第2参数表示最大值。

时间日期函数

在使用PHP开发Web应用程序时,经常会涉及日期和时间管理。

例如倒计时、用户登录时间、新闻发布时间、购买商品时下订单的时间等。

为此,PHP提供了内置的日期和时间处理函数,满足开发中的各种需求。

Unix时间戳是一种时间的表示方式,它是为了解决编程环境中时间运算的问题。

Unix时间戳(Unix timestamp): 定义了从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,以32位二进制数表示。

echo time();// 输出结果:1487666317

echo mktime(0, 0, 0, 2, 21, 2017);// 输出结果:1487606400

echo strtotime("2017-2-21");// 输出结果:1487606400

echo microtime();// 输出结果:0.04142600 1487666098

echo microtime(true);// 输出结果:1487666098.0414

time()函数用于获取当前时间的Unix时间戳,

mktime()和strtotime()函数可将给定的日期时间转换成Unix时间戳,前者的参数分别表示“时分秒月日年”,后者可以是任意时间的字符串。

函数microtime()用于获取当前Unix时间戳和微秒数,不设置参数时,返回值的形式前面一段数字表示微妙数,后面一段数字表示秒数;设置参数时,小数点前表示秒数,小数点后表示微秒数。

格式化时间戳: 对于用户来说,时间戳的直接输出,会让其看到一个毫无意义的整型数值。为了将时间戳表示的时间以友好的形式显示出来,可以对时间戳进行格式化。

echo date("Y-m-d H:i:s");// 输出结果:2017-02-21 16:48:16

echo date("Y-m-d", 1487666317);// 输出结果:2017-02-21

date()函数第1个参数表示格式化日期时间的样式

date()函数第2个参数表示待格式化的时间戳,省略时表示格式化当前时间戳。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/qq_41254184/article/details/88560275

php的内置函数strrpos_PHP函数用法详解【初始化、嵌套、内置函数等】相关推荐

  1. python中tile的用法_python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

  2. Delphi Format函数功能及用法详解

    DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...

  3. python scatter参数详解_Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

  4. python scatter参数详解_Python 中 scatter 函数参数及用法详解

    Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...

  5. Python中max函数key的用法详解

    max 是 Python 中的内置函数,它可以用于求出可迭代对象中的最大值. 语法: 它的语法如下: max(iterable, *[, key, default]) 其中,iterable 参数是一 ...

  6. 函数 php_PHP回调函数及匿名函数概念与用法详解

    1.回调函数 PHP的回调函数其实和C.Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数: 回调函数执行完毕之后,再回到主线程处理接下来的流程 而在ph ...

  7. java回调函数_PHP回调函数及匿名函数概念与用法详解

    1.回调函数 PHP的回调函数其实和C.Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数: 回调函数执行完毕之后,再回到主线程处理接下来的流程 而在ph ...

  8. php strpose_php中strpos()和stripos()函数的区别用法详解

    本篇文章主要给大家介绍PHP中strpos()和stripos()函数的区别用法介绍,希望对需要的朋友有所帮助! strpos()函数 这个函数帮助我们找到一个字符串在另一个字符串中第一次出现的位置. ...

  9. c语言中函数作用于数组,详解C语言中的函数、数组与指针

    1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念: 函数 ...

  10. mysql开窗函数over_oracle分析函数技术详解(配上开窗函数over())

    一.Oracle分析函数入门 分析函数是什么? 分析函数是Oracle专门用于 解决复杂报表统计需求 的功能强大的函数, 它可以在数据中进行分组然后计算基于组的某种统计 ,并且每一组的每一行都可以返回 ...

最新文章

  1. python 语言教程(3)变量之元组
  2. python中关于字符串的操作
  3. 卸载小鲁温度监控有影响吗_通过中央控制器和远程监控优化能源效率
  4. 基于阿里云日志服务快速打造简版业务监控看板
  5. TestAndSet实现互斥锁
  6. XSS-Game level 5
  7. 用FileMapping跨进程共享数据
  8. sas 怎么连接mysql_sas连接MySQL
  9. springBoot国际化多语言开发配置,中文OR英文支持一键切换
  10. IPv4的路由选择计算步骤
  11. 20145202马超 《Java程序设计》 实验一 实验报告
  12. paip.使用WORD进行拆分段落单个汉字转表格.txt
  13. 基于神念TGAM的脑波小车(4)
  14. mzy,struts学习(二):struts.xml的配置
  15. 记一次程序包XXX不存在解决过程
  16. Wallpaper Engine壁纸提取
  17. 这些年过上幸福生活的程序员(中篇)
  18. c语言 汉诺塔游戏下载,使用C语言解决益智游戏——“汉诺塔”
  19. 项目时间管理有哪些过程?
  20. 【微信小程序 | 实战开发】实现ES6转ES5开关

热门文章

  1. 微信支付银行卡限额是多少?
  2. 关键词搜索商品(精准控价)
  3. Linux属于软件还是硬件,Linux系统教程_Linux系统软件处理和硬件处理的区别有什么不一样?...
  4. 初中生怎么学英语和计算机,初中生如何学习英语口语
  5. Element UI for Vue 3.0 来了!
  6. android sony录音app,系统自带录音可弃 这款APP能让手机录立体声
  7. Arturia Synthi V for Mac(音频模拟合成软件)
  8. [阿里DIN] 从论文源码学习 之 embedding层如何自动更新
  9. 【MOOC】华中科技大学计算机组成原理慕课答案-第六章-中央处理器(二)
  10. 裁员潮未完,网传甲骨文将关闭中国研发中心,裁员1000+人,赔偿方案N+6?