我有 2 个文件名为:dictionary.php 和 functions.php functions.php 包括 dictionary.php
dictionary.php:包含两件事:一个西班牙语->英语词典数组和这个函数:
<?php
function english($is_english, $word) {
global $es_en;
if ($is_english) {
//return value
return $es_en[$word];
}
else {
//return key
return $word;
}
}
functions.php 以 2 种方式调用此函数,其中一种方式出现故障:这是:
english($is_english,"StringToTranslate")
和
english($is_english,$varToTranslate)
第一个工作正常,但第二个发出这个通知:如果$varToTranslate
碰巧是 Kínder
未定义索引:第 45 行 C:..\resources\dictionary.php 中的 Kínder
第 45 行是 the 所在的return $es_en[$word]
位置。请注意,这$es_en
是字典数组,它有一个条目:Kínder=>Kinder,
在任何一种情况下,当我使用字符串而不是变量作为函数参数时,它都可以工作。
有谁知道我该如何解释这种行为?我必须对变量应用某种字符串更改,以便函数可以正确处理它吗?如果有什么不清楚的地方请指出。
更新
functions.php 包含几个由 main.php 页面调用的函数。现在正在测试的一个是这样的
function plan_info($grado, $materia, $ingles, $addresses, $files){
echo '<table id="plan_head"><tr>
<td><div style="width:289px;"><strong>' . english($is_english, "Maestro") . ': </strong>' . $_SESSION['firstname'] . ' ' . $_SESSION['lastname'] . '</div></td>
<td style="text-align:center;"><div style="width:289px;"><strong>' . english($is_english, "Grado") . ':</strong> <span id="grado"><input type="text" name="grado" maxlength="60" value="' . english($is_english, $grado) . '"/></span></div></td>
分配给 $grado(我原来的例子是 $varToTranslate),在 main.php 中完成:
$grado=html_entity_decode(htmlentities(str_replace('%20',' ',$_GET['grado']), ENT_COMPAT, "ISO-8859-1"), ENT_COMPAT, "ISO-8859-1");