-1

PHP コードが show error または check_data 関数に入らない理由

<?php
$error_array = array();
if (isset($_REQUEST["welcome_already_seen"])) {
    check_data();
    if (count($error_array) != 0) {
        show_error();
        show_welcome();
    } else {
        handle_data();
    }
} else {
    show_welcome();
}

function show_welcome()
{
    echo "<form method='post'>
        <input type='text' name='flavor'>
        <input type='submit' value='submit'>
        <input type='hidden' name='welcome_already_seen' value='already_seen'>
        </form>";
}

function check_data()
{
    if ($_REQUEST["flavor"] == "") {
        $error_array[] = "<div style='color:red'>please enter flavor</div>";
    }
}

function show_error()
{
    global $error_array;
    foreach ($error_array as $err) {
        echo $err, "<br>";
    }
}

function handle_data()
{
    echo "flavor =";
    echo $_REQUEST["flavor"];
}

?>

PHPコードがshowエラーまたはcheck_data関数に入らない理由は何か解決策があり、コード内の問題を教えてください

4

2 に答える 2

1

機能しcheck_dataますが$error_array、ローカルスコープで使用しているため、グローバル配列にはデータが入力されていません。

関数でグローバルにする必要があります-そのように:

    function check_data(){
        global $error_array;

        if($_REQUEST["flavor"] == ""){
            $error_array[] = "<div style='color:red'>please enter flavor</div>";
        }
    }
于 2013-08-22T05:34:04.730 に答える