PHP变量深度?或者我是关联数组的难题

时间:2012-08-05 15:33:10

标签: php string variables scope depth

我有两个名为的文件: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以两种方式调用此函数,其中一种方式是以某种方式故障: 这是:

english($is_english,"StringToTranslate")

english($is_english,$varToTranslate)

第一个工作正常,但第二个工作正常:如果$varToTranslate恰好是Kínder

  

未定义的索引:第45行的C:.. \ resources \ dictionary.php中的Kínder

第45行是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"); 

0 个答案:

没有答案