退出PHP脚本没有错误

时间:2011-12-03 09:31:35

标签: php performance exit

我有一个PHP脚本,可以注册大约20个函数。理想情况下,它会加载require_once。我想让它成为这样,即使它不知何故它被多次加载,它也不会尝试重新注册函数。我可以在!function_exists中包装每个声明,但我想知道是否有更快的方法。 (或者您认为对!function_exists的20次调用可以忽略不计?)我尝试使用exit,但这会导致错误。是否可以退出而不抛出错误?

if ( /* already loaded */ )  { 
    /* leave gracefully */
}  

/* declare ~20 functions */

5 个答案:

答案 0 :(得分:4)

if (!defined('ALREADY_LOADED')) {
    define('ALREADY_LOADED', true);
    // rest of your code goes here

}

这将检查是否定义了常量ALREADY_LOADED,如果不定义,则定义常量并执行任何其他操作。

运行一次之后,将定义常量,并且不会再次运行。

我建议使用比ALREADY_LOADED更具描述性的常量名称。

答案 1 :(得分:2)

我认为使用OOP是最实用的方法 可以用作具有静态函数的类

class SimleClass{
    public static function func1($arg){...}
}

使用它 SimpeClass :: func1的($ ARG);

或sigleton

class SimleClass{
    protected static $_instance=null;
    private function __construct(){...}
    public static function getInstance(){
       if(is_null(self::$_instance)
            self::$_instance=new SimpleClass();
       return self::$_instance;
    }
    public  function func1($arg){...}
}

使用它 SimpleClass ::的getInstance() - > func1的($ ARG);

以及如何连接它自己思考 可以使用include_once

并且可以实现自动加载器类

function myClassLoader($className){
 include_once "/lib/$className.php";
}
spl_autoload_register(myClassLoader);

=============================================== ============== 更具体的答案需要更多的数据。 也许你的应用程序,你可以重新排列以获得更合理的结构

答案 2 :(得分:1)

如果你作为一个作者不再需要它一次,(或者一直使用require_once())那么重新注册函数应该没有问题。

对于没有错误的退出,请尝试die()

答案 3 :(得分:1)

我会尽量不在第一步重新声明功能(这里需要不止一次)。 做20x function_exists()不需要任何费用,只需要一些时间来编写和包装;) 也许您可以尝试使用类/方法。

答案 4 :(得分:1)

function_exists也不错。

您可以按以下方式编写php脚本文件。

/* file1.php */
if(!defined('FILE1')) {
define('FILE1', 1);
/////////////////////////
// PUT file contents here.

/////////////////////////
}// file.php finished.

现在,您可以根据需要随时添加此文件。什么都不会重新定义。