str_replace()无效

问题描述 投票:2回答:1

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

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))));
php str-replace
1个回答
1
投票

你的问题是你在调用它时没有为你的函数提供$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(.....));