生成函数数组?
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);
【讨论】:
以上是关于生成函数数组?的主要内容,如果未能解决你的问题,请参考以下文章
python编写自定义lambda函数使用numpy中的np.vectorize函数在numpy数组中的每个元素上施加应用自定义lambda函数生成新的numpy数组