0

私は、dictionary.php と functions.php という名前の 2 つのファイルを持っています。 functions.php には、dictionary.php が含まれています。

dictionary.php: スペイン語から英語への辞書配列と次の関数の 2 つが含まれています。

<?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)

最初のものは問題なく動作しますが、2 番目のものは次の通知$varToTranslateを出します。

未定義のインデックス: Kínder in C:..\resources\dictionary.php 行 45

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"); 
4

0 に答える 0