【发布时间】:2011-01-28 07:07:18
【问题描述】:
我正在努力寻找最实用的方法来动态导入函数...让我解释一下。
假设我有一个名为 functions 的目录,其中包含以下文件:
array_select.func.php
stat_mediam.func.php
stat_mean.func.php
.....
我想:加载每个单独的文件(其中定义了一个函数)并像使用内部 php 函数一样使用它。例如 array_pop()、array_shift() 等。
有一次我偶然发现了一个将用户定义的函数编译为 PHP 安装的一部分的教程(我现在找不到了)。虽然这不是一个很好的解决方案,因为在共享/经销商托管上你不能重新编译PHP 安装。
我不想与 PHP 的未来版本/其他扩展发生冲突,即如果我命名为 X 的函数突然成为内部 php 函数的一部分(即使它本身可能没有相同的功能)我不希望 PHP 因此抛出一个致命错误并惨遭失败。
所以我能想到的最好的方法是检查是否定义了函数,使用 function_exists(),如果是,则抛出一个通知以便在日志文件中轻松跟踪,否则定义函数。然而,这可能会转化为在我需要这样一个函数的其他文件中有很多包含/要求语句,我不太喜欢。或者可能,读取目录并遍历每个 *.func.php 文件和 include_once。虽然我觉得这有点难看。
问题是,你有没有偶然发现一些处理这种情况的源代码?它是如何实施的?你做过类似的事情吗?我需要尽可能多的想法! :)
【问题讨论】:
-
一个类不能做的任何特殊原因?动态加载每个单独的函数会更慢且更难维护,也许不是那么实用。
-
为了维护能力,我可能最终会这样做。
-
考虑到这个问题没有太多答案(我并不感到惊讶),我会看看我能想出什么来满足速度/可维护性/实用性。如果我确实找到了满足这一点的解决方案,我会回来并在这里发布;)
标签: php function include requirements