检查变量是否为空.如果是,请设置值.否则,执行功能


Check if Variable is empty. if so, set value. else, perform function

这能做到吗?

我创建了一个执行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();

您的代码有两个直接的问题:

  1. 在检查$firstname为空之前,您永远不会定义它
  2. 表单中的操作没有任何作用,因为您从未处理过func_name——这不是该语言的内置功能

要开始修复代码,您需要在提交表单时正确处理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();

您的函数可以简单地为:

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

无需将其添加到表单中。