PHP 导入函数

标签 php function include requirements

我正在尝试找到即时导入函数的最佳实用方法...让我解释一下。

假设我有一个名为 functions 的目录,其中包含以下文件:

array_select.func.php
stat_mediam.func.php
stat_mean.func.php
.....

我想:加载每个单独的文件(其中定义了一个函数)并像内部 php 函数一样使用它..例如 array_pop()、array_shift() 等。

有一次我偶然发现了一个教程(现在我再也找不到了),该教程将用户定义的函数编译为 PHP 安装的一部分。尽管这不是一个很好的解决方案,因为在共享/经销商托管上您无法重新编译PHP 安装。

我不想与 PHP/其他扩展的 future 版本发生冲突,即,如果我名为 X 的函数突然成为内部 php 函数的一部分(即使它本身可能不具有相同的功能)我不希望 PHP 因此抛出 fatal error 并惨败。

所以我能想到的最好的方法是使用 function_exists() 检查函数是否已定义,如果是,则抛出一个通知,以便在日志文件中轻松跟踪,否则定义该函数。然而,这可能会转化为在其他文件中包含大量包含/需要语句,而我需要这样的函数,但我并不喜欢。或者可能,读取目录并循环遍历每个 *.func.php 文件和 include_once。虽然我觉得这有点难看。

问题是,您是否曾经偶然发现过处理此类情况的源代码?它是如何实现的?你曾经做过类似的事情吗?我需要尽可能多的想法! :)

最佳答案

实现此类功能的一种方法是将这些函数放入类中,然后设置 __autoload功能。如果您反对将函数包装在类中,那么此解决方案可能不适用于您。我个人喜欢它,因为它允许我命名我的函数并在它们之间共享私有(private)方法。

首先,您设置与此类似的自动加载功能。您需要调整命名约定以适合您自己的风格,并可能引入一些错误处理,但这只是为了了解基本概念。

function __autoload($class_name){
     require_once(strtolower("library/$class_name.class.php"));
}

然后,无论范围如何,您都可以在代码中的任何位置执行类似的操作。

arrayFunctions::doStuff($myArray);

PHP 将自动尝试包含“library/arrayFunctions.class.php”并在 arrayFunctions 类中查找名为“doStuff”的方法。

关于PHP 导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457653/

相关文章:

Python 搜索代数函数

javascript - php/mysql 动态下拉菜单的 AJAX RETURN 帮助

php - 仅限使用一张优惠券,删除 Woocommerce 中之前使用的其他优惠券

c - 我如何在不完成主要功能的情况下从一个功能(主要)转到另一个功能?(在 C 中)

javascript - 将 JavaScript 代码块插入 PHP 脚本

c - 追踪包含文件(包含链)

c 其中包含包含函数

php - 更新查询增量字段加 1 codeigniter

php - 通过 PHP 上传视频文件并将它们保存在适当的文件夹中并有一个数据库条目

python - 接受争论