如何在php中从同一函数调用不同的参数


How to call different argument from the same function in php?

我需要能够调用存储在函数中的不同参数,如下所示:

function foo() {
    if( get_option( 'option_1' ) ) {
        $argument_1 = 'this one';
    } else {
        $argument_1 = 'that one';
    }
    if( get_option( 'option_2' ) ) {
        $argument_2 = 'this two';
    } else {
        $argument_1 = 'that two';
    }   
}

现在我需要在不同的文件中调用这些参数如下(伪代码):

<?php echo foo( $argument_1 ); ?>
<?php echo foo( $argument_2 ); ?>

我能做什么?谢谢

您正在向后思考。foo()公开其变量供其他代码查看,它们完全包含在其范围内。相反,函数可以返回一个值(可能来自其内部变量之一)。

调用该函数时,您将为它提供所需的一切,以确定返回的内容。因此,你可能会有这样的结构:

function foo($option) {
    if( $option == 'option_1'  ) {
        return 'this one';
    } else {
        return 'that one';
    }
}

然后,当您调用该函数时,您为它提供执行计算所需的信息:

<?php echo foo( get_option( 'option_1' ) ); ?>

其思想是,对该函数的整个调用,以及传递给它的值,计算为单个结果值。因此foo( get_option( 'option_1' ) )在执行时在逻辑上与this one相同。

因此,您并不是在问foo"您拥有的变量的值是多少?"封装意味着使用代码既不知道也不关心foo的内部。相反,你问foo"这是你要计算的东西,结果是什么?"

您的意思是参数?使用函数参数(有时称为参数),您可以将变量或值传递给函数,并将其用作局部变量:

function foo($localVariableName)
{
  echo $localVariableName . $localVariableName;
}
foo('abc');  // echoes abcabc

你也可以有更多:

function foo($parameter1, $parameter2)
{
  echo "$parameter1 - $parameter2";
}
$a = "abc";
$x = "def";
foo($a, $x);  // echoes abc - def
foo($x, $a);  // echoes def - abc

还有其他的可能性,所以看看PHP.net-函数参数。