这个基本函数调用有效;
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_contents($cache)
)
)
);
我得到:
致命错误:未捕获的 ArgumentCountError:函数 translate() 的参数太少,传入 1 个参数,而预期恰好有 3 个参数
您的问题是您在调用函数时没有向函数提供
$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(.....));