检查Variable是否为空。如果是这样,设定值。否则,执行功能

时间:2016-04-01 00:43:29

标签: php

可以这样做吗?

我创建了一个执行函数giveReaction的表单。谁能告诉我我做错了什么?

到目前为止,这是我的代码:

function giveReaction (){
    global $firstname;
    if ( empty($firstname) ) {
        $firstname = 'fill in your name, and get a response.';
        echo "$firstname";
    }
    else {
        $firstname = $_GET['firstname'];
        echo "hello, $firstname";
    }
}

echo "<form action=\"index.php?func_name=giveReaction()\" method=\"GET\">
        <input type=\"text\" name=\"firstname\">
        <input type=\"submit\" value=\"send\">
      </form>";

giveReaction();

2 个答案:

答案 0 :(得分:1)

您的代码存在两个直接问题:

  1. 在检查{空白
  2. 之前,您永远不会定义$firstname
  3. 表单中的操作不执行任何操作,因为您从未处理func_name - 这不是语言的内置功能
  4. 要开始修复代码,您需要在提交表单时正确处理firstname输入,例如:

    $firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';
    

    这可确保$firstname将是提交的值,如果尚未提供,则为空字符串。

    那么你可以按如下方式定义你的函数:

    function giveReaction (){
        $firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';
        if ( empty($firstname) ) {
            echo 'fill in your name, and get a response.';
        } else {
            echo "hello, $firstname";
        }
    }
    

    其次调整表单以删除不必要的操作,因为默认表单将提交到当前页面,并且不使用func_name参数。

    echo "<form method=\"GET\">
        <input type=\"text\" name=\"firstname\">
        <input type=\"submit\" value=\"send\">
      </form>";
    

    然后你可以通过调用你的函数来完成。

    giveReaction();
    

答案 1 :(得分:0)

您的功能可以简单地是:

function giveReaction() {
  $firstname = $_GET['firstname'];
  echo $firstname ? "hello, $firstname" : 'fill in your name, and get a response.';
}

无需将其添加到表单中。