HTML/PHP 奇怪的错误

HTML/PHP weird error

所以我正在开发一个网站,您可以在该网站上教新手一些我们需要知道的代码。 这是在网站上:A table,在一个表格中,您必须在某些水果、蔬菜tables 和面包(超市的东西..)的输入字段中输入正确的代码。

所以像这样:图片 - 黄瓜 - 在这里填写代码

最后,会检查您是否填写了正确的代码。 唯一的问题是:

这个有效:

index.php:

<?php
    if(isset($_POST['komkommer'])){
        /* Include PHP scripts first */
        include_once 'phpscripts/plu.php';
        include_once 'phpscripts/groentestore.php';

        /* Call the check functions */
        if($komkommer != $plu_komkommer){
            echo '<p>Komkommer was niet juist! Jij voerde '.$komkommer.' in!   </p>';
        }
        if($rodekool != $plu_rodekool){
            echo '<p>Rode kool was niet juist! Jij voerde '.$rodekool.' in!</p>';
        }
        ...More of these if statements...
    }
    else {

    }
?>

groentestore.php:

<?php
    $komkommer = $_POST['komkommer'];
    $rodekool = $_POST['rodekool'];
    ...more of this...
?>

plu.php:

<?php
    $plu_komkommer = 232;
    $plu_rodekool = 236;
    ...more of this...
?>

这行不通:

index.html:

<?php
    if(isset($_POST['komkommer'])){

        /* Include PHP scripts first */
        include_once 'phpscripts/plu.php';
        include_once 'phpscripts/groentestore.php';
        include_once 'phpscripts/functions.php';

        /* Call the check functions */
        groenteCheck();
    }
    else {

    }
?>

functions.php:

<?php
    function groenteCheck() {
        if($komkommer != $plu_komkommer){
            echo '<p>Komkommer was niet juist! Jij voerde '.$komkommer.' in!</p>';
        }
        if($rodekool != $plu_rodekool){
            echo '<p>Rode kool was niet juist! Jij voerde '.$rodekool.' in!</p>';
        }
        ...More of these is statements...
    }
?>

第二种方法,我遇到了这些错误:

Notice: Undefined variable: plu_komkommer in C:\xampp\htdocs\phpscripts\functions.php on line 3

Notice: Undefined variable: komkommer in C:\xampp\htdocs\phpscripts\functions.php on line 3

Notice: Undefined variable: plu_rodekool in C:\xampp\htdocs\phpscripts\functions.php on line 6

Notice: Undefined variable: rodekool in C:\xampp\htdocs\phpscripts\functions.php on line 6

我正在尝试使用第二种方法,其中有将近 50 个 if 语句,我想保持我的 index.php 干净。 有人知道我做错了什么吗?

选项-1:

将它们声明为全局

<?php
    function groenteCheck() {
        global $komkommer, $plu_komkommer, $rodekool, $plu_rodekool;
        if($komkommer != $plu_komkommer){
            echo '<p>Komkommer was niet juist! Jij voerde '.$komkommer.' in!</p>';
        }
        if($rodekool != $plu_rodekool){
            echo '<p>Rode kool was niet juist! Jij voerde '.$rodekool.' in!</p>';
        }
        ...More of these is statements...
    }
?>

选项-2:

将它们作为参数传递

<?php
    function groenteCheck($komkommer,$plu_komkommer, $rodekool, $plu_rodekool) {
        if($komkommer != $plu_komkommer){
            echo '<p>Komkommer was niet juist! Jij voerde '.$komkommer.' in!</p>';
        }
        if($rodekool != $plu_rodekool){
            echo '<p>Rode kool was niet juist! Jij voerde '.$rodekool.' in!</p>';
        }
        ...More of these is statements...
    }
?>

然后像这样调用函数

groenteCheck($komkommer,$plu_komkommer, $rodekool, $plu_rodekool);

这是变量作用域在 PHP 中工作方式的一个特性。

在您的 groenteCheck() 函数中,您需要在顶部添加一行:

function groenteCheck() {
    global $komkommer, $plu_komkommer ...

    // rest of function variables
}

有关范围在 PHP 中如何工作的更多信息,请参见 in the manual