2013-02-13 31 views
0

如果我把一个函数放入一个if语句中,这是一种'只在尚未声明的时候声明'的有效方法吗?我在another thread上读到,嵌套在其他函数中的函数与非嵌套函数相同(不确定这适用于此)。我的功能是否会始终执行,或只有当if为true时才执行?只有当语句为真时,才会读取if语句中的函数吗?

if(!function_exists('myFunction')){ 
    //Add myFunction just in case it wasn't declared previously 
    function myFunction() { 
    // do something 
    } 
    myFunction(); 
    } 
    else { 
    myFunction(); 
    } 

或者,有没有更好的办法做到这一点,是该功能可能会或可能不会被以前在父文件中声明?

+1

地方函数myFunction的(){} if语句之外,如果你打算调用它在其他地方(如在你的其他声明) – PlantTheIdea 2013-02-13 20:50:10

+0

我打算将它先前在其他地方声明,这只是一个后备。那么这个作品呢? (没有双声明) – John 2013-02-13 20:57:18

+1

这是在同一文档中某处不存在的函数的回退?除非我们动态地创建这个功能,这很荒谬。但是,这是可行的。 – PlantTheIdea 2013-02-13 20:59:27

回答

1

地方函数myFunction的(){} if语句之外,如果你打算在其他地方调用它(就像在你else语句)