我需要能够调用存储在函数中的不同参数,如下所示:
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-函数参数。