str_replace() 不工作

str_replace() Not working

第一次遇到这样的问题。 有效;

function translate($google) {
$en = array(
    "Mother", "Father"
 );
 $de= array(
    "Mutter", "Vater" 
 );
$s = str_replace($en,$de,$google);
return $s;}

但这不起作用

$en = array(
        "Mother", "Father"
     );
     $de= array(
        "Mutter", "Vater" 
     );
function translate($google, $en, $de) {
    $s = str_replace($en,$de,$google);
    return $s;
}

我哪里出错了?

上次我就这样用了;

echo translate(fonkfonk(str_replace(array("\n","\r","\t"),array("‌​","",""),file_get_co‌​ntents($cache))));

您的问题是您在调用函数时没有向函数提供 $en$de 的值。

$en = array("Mother", "Father");
$de = array("Mutter", "Vater");
function translate($google, $en, $de) {
    $s = str_replace($en,$de,$google);
    return $s;
}

echo translate(fonkfonk(.....)); // error because translate() does not know what
                                 // $en and $de are supposed to be

您只提供了 fonkfonk() 函数的结果作为第一个参数 ($google),没有提供第二个和第三个参数。

您应该做的是在函数调用中提供 $en$de 的值,或者在定义函数时导入它们:

function translate($google, $en, $de) {
    $s = str_replace($en,$de,$google);
    return $s;
}

$en = array("Mother", "Father");
$de = array("Mutter", "Vater");
echo translate(fonkfonk(.....), $en, $de);

或者:

$en = array("Mother", "Father");
$de = array("Mutter", "Vater");
function translate($google) use ($en, $de) {
    $s = str_replace($en,$de,$google);
    return $s;
}

echo translate(fonkfonk(.....));