PHP 搞笑的函数

在javascript里面,我们可以这样写代码:

var a = function(){
   var b = function(){alert('hello');};
   b();
}

在PHP里面,我们也可以这么写滴 :D

<?php 
  function a(){
    function b(){
      echo 'hello';
    }
   b();
 }
 
a();
?>

结果会怎么样呢?是我们预期需要的 hello,但是再来执行一次
a();
a();
程序就会出现function exist 错误了。
原因是:php 函数定义可以放在另一个函数里面,或者对象的方法也可以。当外面的函数被执行的时候,PHP就会将里面的函数提升成为全局函数,因此我们可以在其他的代码里面使用里面的函数b()。但是当外面的函数被多次执行时候,由于php再一次定义里面的函数,因此就会出现function exist错误了。
如果我们还需要这样弄的话,可以加一个 function_exist()来判断之后再去定义,这样就不会出现错误了。