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

php中function_exists的一个坑

phpmianshi4个月前 (02-22)php331

背景

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面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

php-fpm backlog参数优化

php-fpm backlog参数优化

一、问题分析       1、分析php-fpm.slow.log发现没有执行慢的地方,然后把目光放到了nginx 与php建立连接的阶段上,使用tcpdump...

PHP红包分配算法

<?php /**  * User: phpmianshi.com   * Date: 2020/3/31 &nbs...

PHP7 数组的底层实现

PHP7 数组的底层实现

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

PHP内核分析之生命周期五个阶段(四)

一、模块初始化阶段我们先来看一下该阶段的每个函数的作用。1.1、sapi_initialize_request_empty函数// main/SAPI.c SAPI_API vo...

php-fpm的优雅重启关闭

PHP 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:m...

为什么会有OPTIONS请求

背景在做项目时,很多时候发送一个post请求,是先发送一个option请求,然后再发送post请求,今天我们分析下为什么会多一次请求。疑问1:什么是options请求OPTIONS请求方法的主要用途有...

发表评论

访客

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