【问题标题】:PHP - function reflection - get all return values without running the functionPHP - 函数反射 - 在不运行函数的情况下获取所有返回值
【发布时间】:2018-11-20 12:13:32
【问题描述】:

我有一个类似的功能

function foo($p){
   if ($p == "") return 0;
   return 5;
}

是否有可能以某种方式获取函数可以返回的所有返回值(在本例中为 0 和 5)?我可以运行该函数,但我不知道哪个值会返回哪个值。

我正在构建某种插件系统,此函数是用户定义为 lambda。所以我不知道它的复杂性或可能的输入。为了能够获取所有返回值,它将增加用户友好性。目前,用户必须通过函数中的变量手动指定它,如下所示:

function setLambda($lambda, array $returnValues)...

编辑:

返回值总是整数。为方便起见,我希望返回值像示例中那样被硬编码,而不是计算。

【问题讨论】:

    标签: php function reflection return-value


    【解决方案1】:

    想象一下你有一个类似的函数

    function test($input)
    {
     return $input;
    }
    

    输出可能是所有可能的字符串、数组、整数、浮点数、对象……我想你明白我的意思了。
    我认为您无法预测所有可能的返回值,因此答案是

    【讨论】:

    • 即使返回值是示例中的硬编码数字?
    • PHP 不知道你是否有硬编码或可变返回值
    • 我知道,但可能会以某种方式将函数转换为字符串并使用正则表达式获取返回值?
    • 如果只是声明呢?你知道你编码了什么,所以只需将它传递给一个变量?
    • 这就是我目前的解决方案 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多