PHP 包含/需要内部函数

2022-08-30 21:48:23

如果函数非常大,并且每次加载页面时都会加载它们,那么编写以最小化函数脚本的大小会更好吗?或者这并不重要,因为当加载(但未执行)函数时,即使内容已放入包含中,也会加载内容?谢谢。function foo(){ include(.../file_with_function's_code); return; }

(编辑:我的问题不是关于它是否可能)


答案 1

虽然@Luceos答案在技术上是正确的(最好的正确类型),但它并没有回答你提出的问题,即是否做得更好,或者无论函数调用如何,都包含都会发生?

我以最基本的方式测试了这个(OP,你为什么不这样做?

<?php
echo "Testing...";

function doThing() {
    include nonExistantFile.php;
}
//doThing();
echo "Done testing.";

结果:

如果我打电话,我得到一个文件未找到警告。doThing();

如果我注释掉...没有错误!因此,您可以通过执行此操作来节省文件加载时间。doThing();


答案 2

或者,作为一个很好的替代方案,将函数封装在类中,并利用__autoload的好处:

function __autoload($class_name) {
    include $class_name . '.php';
}

封装在类中myBigFunction()

class myBigFunction {
  public static function run() {
    //the old code goes here
  }
}

另存为myBigFunction.php

当您在类上将函数作为静态方法调用时:

myBigFunction::run()

__autoload将加载文件,但不在此之前。


推荐