Php 在Python中,您可以将一个变量分配给一个函数,然后将参数传递给该变量,这个特性叫什么?

Php 在Python中,您可以将一个变量分配给一个函数,然后将参数传递给该变量,这个特性叫什么?,php,python,function,Php,Python,Function,您将Python的功能称为什么,其中: 将函数赋给变量 myPowerVariable=pow mySqrtVariable=math.sqrt 然后你用参数调用那个变量 myPowerVariable(2,3) 打印8张 mySqrtVariable(9) 打印3张 如果你在PHP中尝试,它将不起作用,希望有人能告诉我这个特性叫什么 感谢您在PHP中,如果您使用正确的PHP语法,它们将被调用并工作良好: $myPowerVariable = 'pow'; echo $myPowerVariab

您将Python的功能称为什么,其中:

  • 将函数赋给变量

    myPowerVariable=pow

    mySqrtVariable=math.sqrt

  • 然后你用参数调用那个变量

    myPowerVariable(2,3)

    打印8张

    mySqrtVariable(9)

    打印3张

  • 如果你在PHP中尝试,它将不起作用,希望有人能告诉我这个特性叫什么

    感谢您

    在PHP中,如果您使用正确的PHP语法,它们将被调用并工作良好:

    $myPowerVariable = 'pow';
    echo $myPowerVariable(2, 3);  // prints 8
    
    如果您这样做了:

    $myPowerVariable = pow();
    
    你会得到:

    警告:pow()只需要2个参数,给定0

    因为您正在执行
    pow()
    并将结果分配给
    $myPowerVariable
    ,但没有提供所需的参数

    这是您在评论中提到的一个简单示例:

    $myPowerVariable = function($a, $b) {
        echo pow($a, $b);
    };
    
    $myPowerVariable(2, 3);
    

    首先,您的措辞混淆了:您实际上是将一个函数分配给一个变量


    无论如何,这是Python拥有的一个示例。

    这通常被称为,PHP中确实存在此功能,尽管在语法上存在一些差异。以下是PHP中的工作原理:

    function myFunction() {
        echo 'here!';
    }
    
    $myVar = 'myFunction';
    
    $myVar();
    
    class myClass
    {
        function myMethod() {
            echo 'here!';
        }
    }
    
    $myVariable = ['myClass', 'myMethod'];
    
    call_user_func($myVariable);
    
    这也适用于PHP:

    function myFunction() {
        echo 'here!';
    }
    
    $myVar = 'myFunction';
    
    $myVar();
    
    class myClass
    {
        function myMethod() {
            echo 'here!';
        }
    }
    
    $myVariable = ['myClass', 'myMethod'];
    
    call_user_func($myVariable);
    

    看看,也许你的意思是“第一类对象”@VPfB这些知识你不会从教程中获得,但只有在你学习计算机科学的情况下才能获得?@TheWolf我不知道答案。但我想利用这个小小的评论来推荐好书。它们作为教程提供了更好的“基础”。@VPfB请继续,谢谢。我从来都不了解PHP中的匿名函数,这就是我需要知道的关于匿名函数的所有知识吗?分配给变量的
    字符串可能实际上是
    函数,这不是很可怕吗,然后突然有一个变量可以调用
    函数
    ?或者我只是想得太多了?@TheWolf这可能有点危险,因为在Python示例中,如果函数未定义,赋值行将抛出NameError,但在PHP中,在尝试调用变量函数之前不会引发错误,因为始终允许将字符串赋给变量。PHP版本可能导致编译期间无法检测到的运行时错误,具体取决于它的使用方式。