在PHP中使用isset或者不使用变量设置?

时间:2015-06-06 04:56:52

标签: php isset

我有一个提交数据的表单,作为测试,我试图首先检查是否在提交时设置了变量。如果设置了变量,将显示一个文本,说明“变量已设置”。但是如果没有设置,将显示一个文本,说“变量未设置”,一旦未设置变量,则应设置它,以便下次提交表单时显示变量,但这不是为我工作,由于某种原因它始终显示变量未设置,我的PHP代码将在下面:

<?php
if (isset($test)) {
    echo "This var is set";
}

if (!isset($test)) {
    echo "This var is not set";
    $test = 'set';  
}
?>
            <form action="" method="post">
                <input type="text" id="text" name="text" autocomplete="off"><br><br>
                <input type="submit" value="submit">
            </form>

我感到非常愚蠢,因为我无法做一些看起来那么容易的事情,我只是在学习并尝试自学,谢谢你提供的任何帮助!!!

4 个答案:

答案 0 :(得分:2)

如果您使用表单提交值,请尝试使用此表,

if (isset($_POST['text'])) {
    echo "This var is set";
}

if (!isset($_POST['text'])) {
    echo "This var is not set";
    $test = 'set';  
}

否则,如果变量设置为空值,如$test = ''; (这意味着变量已设置但没有值)它将仅执行您的第一个if条件。

答案 1 :(得分:2)

工作代码和说明:

<?php
    $test="";
    if (isset($_POST["text"])) { //always directly check $_POST,$_GET var without assigning
        echo "This var is set";
        $test=$_POST["text"]; // then assign
    }
    else{ // and use else clause for otherwise case
        echo "This var is not set";
        $test = 'set';  // AND if you want set to default/custom value in case of not set.
    }
?>
<form action="" method="post">
    <input type="text" id="text" name="text" autocomplete="off">
    <br /><br />
    <input type="submit" value="submit">
</form>

答案 2 :(得分:0)

您尚未声明变量$test

除非你在这里还没有得到一些PHP,否则你的变量是空的。提交表单时,输入将添加到$ _POST数组(对于method = "post")或$ _GET数组(对于method = "get")。

要修复:

<?php 

if (isset($_POST['text'])) {
    $test = $_POST['text'];
    echo "This var is set";
}

if (!isset($_POST['text'])) {
    echo "This var is not set";
    $test = 'set';  
}

?>

        <form action="" method="post">
            <input type="text" id="text" name="text" autocomplete="off"><br><br>
            <input type="submit" value="submit">
        </form>

答案 3 :(得分:0)

<?php
$test=$_GET["text"];
if (isset($test)) {
    echo "This var is set";
}

if (!isset($test)) {
    echo "This var is not set";
    $test = 'set';  
}
?>
            <form action="#" method="get">
                <input type="text" id="text" name="text" autocomplete="off"><br><br>
                <input type="submit" value="submit">
            </form>