首页 > php > php中function_exists的一个坑
2021
02-22

php中function_exists的一个坑

背景

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时,一定要注意放到调用之前

本文》有 0 条评论

留下一个回复