PHP:如何使用函数来回显结果或将其保存在变量中(部分工作)
PHP: How to use function to either echo result or to save it in a variable (partially working)
我是 PHP 的新手,希望有人能帮助我。
我有以下函数,我可以向其传递一个 itemID
(唯一整数),然后它将用于 return 来自先前创建的数组的相应转换(这只是最终的部分)。
PHP函数(保存在我的头文件中):
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
echo $val["trans"];
}
}
}
只要我按如下方式在 HTML 页面上的任意位置引用该函数,它就会按预期工作。
HTML 页面上的回显结果(有效):
echo fetchTransMain($trans, someID);
但是,在某些情况下,我需要将结果保存为变量,而不是将结果回显到页面。我尝试了以下操作,但这仍然在屏幕顶部的某个地方回响。
将结果保存到变量而不是回显它(不起作用):
$someVariable = fetchTransMain($trans, someID);
有人能告诉我如何使用此函数来回显结果(工作部分)并将其另存为变量(不是工作部分)- 根据需要 ?
非常感谢,
麦克
Can someone tell me how I can use this function both to echo the result (working part) and to save it to a variable alternatively.
像print_r这样的一些函数有一个可选参数来指示它是否应该return这个值,或者只是回应它,所以这是一个公平的问题。这是 print_r
的函数签名:
mixed print_r ( mixed $expression [, bool $return = false ] )
如果您也想要此功能,请尝试传入可选的第三个参数以指示您是否希望函数回显或 return 一个值。
function fetchTransMain($trans, $itemID, $echo = false){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
if(!$echo) {
echo $val["trans"]; // Echo the value
} else {
return $val["trans"]; // Return the value
}
}
}
}
编辑: 仅 return 值并在函数外回显它要简单得多,但我的回答旨在忠实于您的确切问题。
只是 return 函数中的值而不是回显它:
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
return $val["trans"];
}
}
}
然后,当你想打印它时,你可以这样做:
echo fetchTransMain($trans, someID);
否则你会:
$someVariable = fetchTransMain($trans, someID);
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
$tobePrint.= $val["trans"];
}
}
return $tobePrint;
}
并将其用于:
print fetchTransMain($trans, $itemID)
或
$variable = fetchTransMain($trans, $itemID)
最灵活和可扩展的方法是使用输出缓冲函数http://php.net/manual/en/ref.outcontrol.php。
function fetchTransMain($trans, $itemID, $echo){
$str="";
ob_start();
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
echo $val["trans"]; // Echo the value
}
}
$str = ob_get_buffer();
if($echo) ob_end_flush();
else ob_end();
return $str;
}
上面的代码没有测试功能或语法的正确性,但它应该按原样工作或非常相似。
您需要 return 来自函数的值。
假设你可能只有一个可能的匹配试试这个。
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
return $val["trans"];
}
}
}
然后调用你的函数
$someVariable = fetchTransMain($trans, $someID);
然后回显 returned 值。
echo $someVariable;
我是 PHP 的新手,希望有人能帮助我。
我有以下函数,我可以向其传递一个 itemID
(唯一整数),然后它将用于 return 来自先前创建的数组的相应转换(这只是最终的部分)。
PHP函数(保存在我的头文件中):
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
echo $val["trans"];
}
}
}
只要我按如下方式在 HTML 页面上的任意位置引用该函数,它就会按预期工作。
HTML 页面上的回显结果(有效):
echo fetchTransMain($trans, someID);
但是,在某些情况下,我需要将结果保存为变量,而不是将结果回显到页面。我尝试了以下操作,但这仍然在屏幕顶部的某个地方回响。
将结果保存到变量而不是回显它(不起作用):
$someVariable = fetchTransMain($trans, someID);
有人能告诉我如何使用此函数来回显结果(工作部分)并将其另存为变量(不是工作部分)- 根据需要 ?
非常感谢, 麦克
Can someone tell me how I can use this function both to echo the result (working part) and to save it to a variable alternatively.
像print_r这样的一些函数有一个可选参数来指示它是否应该return这个值,或者只是回应它,所以这是一个公平的问题。这是 print_r
的函数签名:
mixed print_r ( mixed $expression [, bool $return = false ] )
如果您也想要此功能,请尝试传入可选的第三个参数以指示您是否希望函数回显或 return 一个值。
function fetchTransMain($trans, $itemID, $echo = false){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
if(!$echo) {
echo $val["trans"]; // Echo the value
} else {
return $val["trans"]; // Return the value
}
}
}
}
编辑: 仅 return 值并在函数外回显它要简单得多,但我的回答旨在忠实于您的确切问题。
只是 return 函数中的值而不是回显它:
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
return $val["trans"];
}
}
}
然后,当你想打印它时,你可以这样做:
echo fetchTransMain($trans, someID);
否则你会:
$someVariable = fetchTransMain($trans, someID);
function fetchTransMain($trans, $itemID){ foreach($trans as $key => $val){ if($val["ID"] == $itemID){ $tobePrint.= $val["trans"]; } } return $tobePrint; }
并将其用于:
print fetchTransMain($trans, $itemID)
或
$variable = fetchTransMain($trans, $itemID)
最灵活和可扩展的方法是使用输出缓冲函数http://php.net/manual/en/ref.outcontrol.php。
function fetchTransMain($trans, $itemID, $echo){
$str="";
ob_start();
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
echo $val["trans"]; // Echo the value
}
}
$str = ob_get_buffer();
if($echo) ob_end_flush();
else ob_end();
return $str;
}
上面的代码没有测试功能或语法的正确性,但它应该按原样工作或非常相似。
您需要 return 来自函数的值。 假设你可能只有一个可能的匹配试试这个。
function fetchTransMain($trans, $itemID){
foreach($trans as $key => $val){
if($val["ID"] == $itemID){
return $val["trans"];
}
}
}
然后调用你的函数
$someVariable = fetchTransMain($trans, $someID);
然后回显 returned 值。
echo $someVariable;