生成函数数组?

Posted

技术标签:

【中文标题】生成函数数组?【英文标题】:Generating an array of functions? 【发布时间】:2012-04-07 07:23:54 【问题描述】:

我有几个 php 文件,其中包含多个函数。我们称它们为functions1.php、functions2.php、functions3.php:

function function_something( $atts ) 
     extract( something_atts( array(
        'foo' => 'bar',
        'bar' => 'foo,
        ), $atts ) );  

         return 'something'; 
   

我在 all_functions.php 中加载这些文件,如下所示:

require_once('functions1.php');
require_once('functions2.php');
require_once('functions3.php');

我想知道是否可以创建一个包含所有这些函数及其属性的数组?

我正在考虑类似的事情:

function my_functions() 
    require_once('functions1.php');
    require_once('functions2.php');
    require_once('functions3.php');

然后是一些 foreach 循环,但我不确定它到底应该是什么样子。

我知道这可能看起来很棘手,但我只是好奇我是否能够在没有 PHP 反射 API 的情况下列出所有 WordPress 短代码:)

【问题讨论】:

【参考方案1】:

嗯,我认为这是一个坏主意,但你总是可以这样做:

for($i = 1; $i < 4; $i++)
    require_once("functions".$i.".php");

但是,是的,这不是一个好主意;)

【讨论】:

或者当然只是将文件名放在一个循环中并循环遍历那些......?【参考方案2】:

如果可以有一个(或多个)包含所有这些函数的静态类,为什么还要创建一个函数数组?您还可以编写一个函数来包含/要求目录中的所有文件。

foreach (scandir(get_include_path() . 'DirectoryName') as $importDirFile)              
    $pathinfo = pathinfo($importDirFile);
    #only php files
    if ($pathinfo['extension'] == 'php')
        require_once($importDir . $importDirFile);              

【讨论】:

以上是关于生成函数数组?的主要内容,如果未能解决你的问题,请参考以下文章

从分层数组Ruby生成平面数组的递归函数[关闭]

从数据库结果生成多维数组的递归函数

Array数组内函数

python编写自定义lambda函数使用numpy中的np.vectorize函数在numpy数组中的每个元素上施加应用自定义lambda函数生成新的numpy数组

详解Python-Numpy库函数take_along_axis()由索引生成新数组的一系列函数中的其中一个函数

Hive表生成函数explode讲解