PHP:将匿名函数写入文件以备后用

PHP: Write anonymous function to file for later use

提问人:user2624744 提问时间:8/8/2023 更新时间:8/8/2023 访问量:35

问:

让我们假设,我们有一个以匿名函数为值的数组。它有以下内容:

  $fpool = [
    'f1' => function($a){
        if($a > 0){
          return [$a*$a, $a+$a];
        }
        return 0;
     },

    'f2' => function($a){
       if($a > 0){
         return [$a*3, $a+2];
       }
       return 1;
    }
];

我想获取一些值并将它们保存到单独的文件中,而无需复制/粘贴。

例如,是否可以将 $fpool['f2'] 保存到单独的文件以供以后包含?

要包含的文件必须包含以下内容:

   <?php
       return ['f2' => function($a){....}]

因为这是我不能或做不到的关闭serialize()var_export()

PHP 闭包 匿名函数

评论

0赞 CBroe 8/8/2023
如果你的包含文件绝对必须具有该特定格式,那么你需要将你返回的数组与你现有的自己合并。$fpool
0赞 shingo 8/8/2023
这回答了你的问题吗?启用 preg_replace_callback() 替换函数(如果它是从字符串加载的)
0赞 KIKO Software 8/8/2023
我不认为你有权访问后面函数的源代码,除非你解析代码存在的原始PHP脚本。例如,请参阅这个问题的答案$fpool['f2']
1赞 Jaquarh 8/9/2023
您可以使用像 opis/closure 这样的包。由于这个概念是利用包装器对象,因此在单独的文件中取消序列化它们之前,这需要需要包。
0赞 A.L 8/9/2023
稍微跑题了:你在这个项目中使用命名空间和类吗?这将有助于长期维护该项目。恕我直言,将匿名函数存储在文件中然后包含它们非常容易出错。

答: 暂无答案