首页 > 解决方案 > 是否可以将函数作为另一个函数参数传递?

问题描述

这是page1.php

function config($key): ?string 
{
    $arr = ["protocol" => "https",
            "port"     => "80",
            "website"  => "wwww.example.com"];
    return array_key_exists($key, $arr) ? $arr[$key] : null;
}

这是page2.php

function ckeckDomain($protocol, $port, $website, $user_role): bool
{
    if ( $user_role === "admin" ){
        // we need $protocol, $port and $website here 
    }
}

这是page3.php

 require "page1.php";
 require "page2.php";

 if ( checkDomain(config("protocol"), config("port"), config("website"), $_SESSION["user_role"]) ){
    // do stuff
 }

好的,如您所见,我必须分别传递config("protocol"), config("port"),config("website")参数才能checkDomain运行。现在我想知道是否可以将config函数传递给checkDomain,然后将config函数调用到checkDomain函数范围中?

像这样的东西:

if ( checkDomain( /* config function */, $_SESSION["user_role"] ) ) {
    // do stuff
}

标签: phpfunction

解决方案


推荐阅读