设为首页 收藏本站
查看: 1756|回复: 0

[经验分享] PHP函数的一些冷知识

[复制链接]

尚未签到

发表于 2018-12-20 08:02:23 | 显示全部楼层 |阅读模式
  函数嵌套
  PHP中函数中可以嵌套定义一个函数,这和C#等语言不一样。嵌套定义的函数,必须要等到外围函数运行后,才有效。也就是说,外围函数的运行,使得系统中重新定义了一个新的函数。
  一开始如果运行b()。会报错,因为系统找不到b函数,但是运行a函数后,a中的定义b函数的语句也运行了,因此系统中有了b函数。因此接下来运行b函数也就可以了。

  运行结果为:
  function a   
function b
  global变量
  这个关键字的使用,php开发中都应当很熟悉。在函数中使用全局变量前,都需要加上global标示。事实上,可以理解为global标示的变量是函数外部全局变量的一个别名。使用global关键字等价于在 $GLOBALS变量中创建一个对变量的引用。
  等价于下面的写法

  最终都是输出 101 101

  静态变量
  和C#语言不同,PHP的函数中允许有静态变量,其使用方式和类中的静态变量类似。
  默认参数和可变参数
  和C#相同,PHP的函数也支持默认参数和可变参数。概念和C#差不多。
function a($a,$b=100)
{
echo ($a+$b)."";
}
a(100,10);
a(100);  PHP的函数有时候需要一个不定长度的参数,此时只需要将函数的参数置空即可。在PHP中,调用函数的时候,输入的参数比定义的参数还多,是不会报错的,PHP只会根据顺序取它需要的参数即可。如果PHP输入的参数比预设的少,则会报错。PHP中可以通过下面三个内置的方法,获得参数的信息。
$array = func_get_args();
$count = func_num_args();
$value = func_get_arg(argument_number);  看个例子就能明白了


  类型暗示
  默认的,PHP函数中,不需要知道变量的类型。但是在某些场合,我们需要某些函数只接受特定的类型。那么需要对该这个函数的参数采取类型暗示。
  语法方式和C#定义函数那样,在参数前面指定参数类型即可。看下面的例子:
  如果函数test的定义为function test ($a, $b){},那么下面的4个调用方法都是可以运行的。
  但是一旦指定了参数类型,则最后2个调用会失败,因为不符合参数类型。
  可变函数
  类似可变变量那样,函数名也可以通过变量表示
  
  匿名函数

  和C#中的匿名函数概念一样,PHP中也有匿名函数的概念,PHP支持通过内置函数来创建函数的功能。根据php手册上的例子,

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653360-1-1.html 上篇帖子: PHP中实现函数重载 下篇帖子: PHP与BOM头(EF BB BF)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表