是否可以在相同的函数中调用函数而不指定函数名称 - 例如使用某种魔术关键字?PHP,可能从相同的函数内调用函数而不指定函数名称?
回答
是的。常数__FUNCTION__
为您提供了当前函数的字符串表示形式。 (src)
function testMe() {
print __FUNCTION__;
}
testMe(); // outputs "testMe"
可以那么当然使用这个自称:
$func = __FUNCTION__;
$func();
另外,'__METHOD__',如果你在OO上下文中。 – 2012-04-04 20:27:21
不错!这是可以调用的吗?即$ foo = __FUNCTION __($ arg);,当我回家时会尝试。我同意这可以被滥用,但我也可以想象使用这个通用递归函数。我想它可能适用于某些算法。 – stefgosselin 2012-04-04 20:28:17
将不会被直接调用,您必须先将\ _ \ _ FUNCTION \ _ \ _填入var。但如果你想要递归匿名函数^^ – 2012-04-04 20:30:37
function someFunction($i)
{
$method = __FUNCTION__;
if ($i > 0)
{
return $method($i-1);
}
return $i;
}
递归的简单的例子,不知道该功能的名称,将调用本身$i
-times如果$i
是积极的。
- 1. 调用函数的名称而不是函数的指针
- 2. excel xll:从函数内部调用函数的名称
- 3. 为lambda分配函数分配调用函数,而不是指定的函数
- 4. 从函数指针调用函数而不分配?
- 5. C函数名称或函数指针?
- 6. 调用具有相同名称为自定义功能的内置函数
- 7. 从函数返回函数而不调用返回函数
- 8. 使用其他函数中定义的函数相同的参数名称
- 9. 不能有与参数类型名称相同的函数
- 10. PHP。从不同的类调用函数。
- 11. 从不同的基类中重载相同名称的虚函数。可能吗?
- 12. 在MATLAB中使用与内建函数相同的名称创建函数
- 13. 从函数内部调用Python函数
- 14. 从函数内部调用函数?
- 15. 完成调用的函数名称,不存在的函数
- 16. 从不同域调用PHP函数
- 17. 在函数内调用列名称
- 18. C++ - 具有相同名称的函数
- 19. 不能从同级内调用函数,但否则可以?
- 20. 从函数指针获取函数名?
- 21. 调用指令内定义的函数
- 22. 函数内的PHP函数
- 23. 使用相同签名/名称调用父函数
- 24. 宏从函数内部获取函数名称和参数值
- 25. Python - Regexp - 查找函数名称,但不是函数调用
- 26. 通过指定函数名称触发函数
- 27. 调用外部函数而不指定命名空间
- 28. 从函数名获取内置函数
- 29. 在函数内部调用函数时的不同结果
- 30. 不同命名空间中的相同函数名称
听起来像一个坏主意,什么你问。 – 2012-04-04 20:24:27
@Dagon对于生成函数的递归听起来不错。 – binarious 2012-04-04 20:28:11
@binarious如果你正在生成函数,你应该知道他们的名字。在过去的几个月中,我已经实现了六个(相关的,代码共享的)代码生成器,它们都具有相互递归的功能,并且在每个代码生成器中,我都使用了每个函数名称的映射,效果很好。 – delnan 2012-04-04 20:29:08