当前位置:首页 > php > 正文内容

php中function_exists的一个坑

phpmianshi4个月前 (02-22)php342

背景

php有一个检查函数是否存在的函数function_exists,有时我们需要用到它,防止函数重复定义


示例

先看一段代码,代码可以正常执行

test();
function test()
{
   return true;
}

再看下面这段代码

test();
if (!function_exists('test')) {
   function test()
   {
       return true;
   }
}

报错:PHP Fatal error:  Call to undefined function test() in xxx

把调用放到下面再看,又可以正常执行

if (!function_exists('test')) {
   function test()
   {
       return true;
   }
}
test();


总结

当用到function_exists的时候,其实是执行一段代码,并不是定义一个函数,所以如果提前调用的话,下面的function_exists还没执行,也就不会定义里面的函数了,导致报错,所以我们用到function_exists时,一定要注意放到调用之前

版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

从0到1搭建基于swoole的websocket服务

源码安装wget  https://github.com/swoole/swoole-src/archive/v4.5.7.tar.gz tar -xzvf ...

php中使用swoole加速lumen项目-laravelS实战

背景公司项目严重依赖lumen系列,代码众多,重构困难,虽然访问量变大,性能问题越来越严重,急需要提升性能,于是找到了这个项目https://github.com/hhxsv5/laravel-s下面...

PHP7 数组的底层实现

PHP7 数组的底层实现

PHP 数组具有的特性PHP 的数组是一种非常强大灵活的数据类型,在讲它的底层实现之前,先看一下 PHP 的数组都具有哪些特性。可以使用数字或字符串作为数组健值$arr = [1&...

php闭包的优缺点

闭包函数:临时创建一个没有名称的函数,经常作为回调函数来用。通俗的说就是:子函数可以使用父函数中的局部变量,这种行为叫做闭包。我的理解是: 闭包就是能够读取其他函数内部变量的函数。匿名函数赋...

PHP中max_execution_time设置不生效

问题描述:max_execution_time设置了1秒,但是发现超过3秒的脚本还是跑。于是深入研究下max_execution_time不生效的原因。官网描述:https://www.php.net...

PHP中命名空间概述

(PHP 5 >= 5.3.0, PHP 7)什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。