如何从php中的相同函数调用不同的参数?

时间:2014-09-26 17:45:16

标签: php function variables

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

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 ); ?>
我可以这样做吗?感谢。

2 个答案:

答案 0 :(得分: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“这里有你可以计算的东西,结果是什么?”

答案 1 :(得分:1)

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

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 - Function arguments