如何将 PHP 函数的参数设置为变量的默认值[重复]

问题描述 投票:0回答:3

所以我希望能够根据变量是真还是假来打开或关闭某个功能。该函数仍然会执行,但因为变量为 false,所以它不会执行例程。

类似这样的事情

$testTF = "T";

function Test($test=$testTF){
echo $test;
}

Test("Go");

当然这行不通,但我想知道是否有办法让它按预期工作。这个函数散布在脚本中的各处,并且需要位于某些位置,因此我不能将它们全部分组在一个 if 语句下,因为这会破坏它们。

我知道您可以在每次调用该值时将其作为标志传递,但我正在寻找一种方法让它假定该值作为默认值,除非另有说明。也许我在这里查看全局变量,但有人告诉我这很危险。

谢谢

php function variables
3个回答
2
投票

你能做到吗?

$testTF = "T";

function Test($test=NULL){
    if ($test ===NULL) {
        global $testTF;
        $test = $testTF;
    }
    echo $test;
}

Test("Go");

如果您反对使用全局变量,您可以将默认值封装在函数中,如下所示:

function Test($test=NULL){
    if ($test ===NULL) {        
        $test = getDefault();
    }
    echo $test;
}

Test("Go");

function getDefault(){
    //pull default value from wherever
    $testDefault = 'T';
    return $testDefault;
}

0
投票

简短的回答是你想要的方式是不可能的,但这也是以下内容的重复: 使用变量作为参数默认值的 PHP 函数

有您正在寻找的答案:)


© www.soinside.com 2019 - 2024. All rights reserved.