PHP:如何使用函数来回送结果或将其保存在变量中(部分工作)

PHP:如何使用函数来回送结果或将其保存在变量中(部分工作),php,function,variables,echo,Php,Function,Variables,Echo,我是PHP新手,希望有人能在这方面帮助我 我有以下函数,我可以将itemID(唯一整数)传递给该函数,然后它将使用该函数从先前创建的数组返回相应的转换(这只是最后一部分) PHP函数(保存在我的头文件中): function fetchTransMain($trans, $itemID){ foreach($trans as $key => $val){ if($val["ID"] == $itemID){ echo $val["trans"

我是PHP新手,希望有人能在这方面帮助我

我有以下函数,我可以将
itemID
(唯一整数)传递给该函数,然后它将使用该函数从先前创建的数组返回相应的转换(这只是最后一部分)

PHP函数(保存在我的头文件中):

function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            echo $val["trans"];
        }
    }
}
echo fetchTransMain($trans, someID);
只要我在HTML页面的任何地方引用函数,它都可以正常工作,如下所示

在HTML页面上回显结果(工作):

function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            echo $val["trans"];
        }
    }
}
echo fetchTransMain($trans, someID);
但是,在某些情况下,我需要将结果保存为变量,而不是将结果回显到页面。我尝试了下面的方法,但它仍然在屏幕顶部的某个地方出现

将结果保存到变量而不是回显它(不工作):

$someVariable = fetchTransMain($trans, someID);
$someVariable = fetchTransMain($trans, someID);
有人能告诉我如何使用此函数来响应结果(工作部件)并根据需要将其另存为变量(非工作部件)

多谢各位, 迈克

有人能告诉我如何使用这个函数来回显结果(工作部分)并将其另存为变量

有些函数,比如,使用可选参数来指示它是否应该返回值,或者只是回显它,所以这是一个公平的问题。这是打印的函数签名:

混合打印(混合$expression[,bool$return=false])

如果您也希望使用此功能,请尝试传入可选的第3个参数,以指示您是否希望函数回显或返回值

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
            }
        }
    }
}

编辑:只返回值并在函数外回显要简单得多,但我的回答旨在忠实于您的确切问题。

只返回函数中的值,而不是回显:

function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            return $val["trans"];
        }
    }
}
然后,当您要打印它时,请执行以下操作:

echo fetchTransMain($trans, someID);
否则,您会:

函数fetchTransMain($trans,$itemID){ foreach($trans as$key=>$val){ 如果($val[“ID”]==$itemID){ $tobePrint.=$val[“trans”]; } } 返回$tobePrint; } 并将其用于:

print fetchTransMain($trans, $itemID) 打印fetchTransMain($trans,$itemID) 或

$variable=fetchTransMain($trans,$itemID)
最灵活和可扩展的方法是使用输出缓冲区函数


上面的代码没有经过功能或语法正确性测试,但它应该按原样或非常类似的方式工作。

您需要从函数返回一个值。 假设您可能只有一个可能的匹配项,请尝试此项

function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            return $val["trans"];
        }
    }
}
然后调用你的函数

$someVariable = fetchTransMain($trans, $someID);
然后echo返回值

echo $someVariable;

哦,天哪,这太容易了非常感谢-这就是我所需要的。我会尽快接受。也非常感谢。在我的具体案例中,看起来Markus Funke的解决方案已经足够了。但是,我喜欢这种方法,并且肯定会在其他方面使用它。:)哦,另一种方法要好得多。到目前为止。我正试图满足你的确切要求;)我知道,但这种方法仍然很有趣,而且确实有帮助。再次感谢!:)调用了一个类似的函数,该函数使用可选参数来回送或返回值。你可能会对它感兴趣。也谢谢你!谢谢-这也很有趣!主要技巧是,您不需要更改原始算法,
ob_start
ob_end
中的部分几乎可以具有任何复杂性。
echo $someVariable;