你认为Python的特性在哪里:
您将函数分配给变量
myPowerVariable = pow
mySqrtVariable = math.sqrt
然后用参数调用该变量?
myPowerVariable(2,3)
prints 8
mySqrtVariable(9)
prints 3
如果你在PHP中尝试,它就不会工作,希望有人可以告诉我你称之为这个功能。
谢谢
答案 0 :(得分:3)
首先,您的措辞混淆了:您实际上是将功能分配给变量。
无论如何,这是Python有first class functions的例子。
答案 1 :(得分:2)
在PHP中,它们被称为Variable functions并且工作正常,假设您使用正确的PHP语法:
$myPowerVariable = 'pow';
echo $myPowerVariable(2, 3); // prints 8
如果你这样做了:
$myPowerVariable = pow();
你得到:
警告:pow()正好需要2个参数,0给定
因为您正在执行pow()
并将结果分配给$myPowerVariable
但未提供所需的参数。
这是您在评论中提到的Anonymous function的一个简单示例:
$myPowerVariable = function($a, $b) {
echo pow($a, $b);
};
$myPowerVariable(2, 3);
答案 2 :(得分:1)
这通常被称为functional programming,虽然语法上存在一些差异,但PHP中仍然存在该功能。以下适用于PHP:
function myFunction() {
echo 'here!';
}
$myVar = 'myFunction';
$myVar();
这也适用于PHP:
class myClass
{
function myMethod() {
echo 'here!';
}
}
$myVariable = ['myClass', 'myMethod'];
call_user_func($myVariable);