Php 当它不应该被调用时被调用

Php 当它不应该被调用时被调用,php,Php,我的网站代码有问题。我只在设置了某个变量时才尝试回显a。变量未设置,但仍显示在我的网站上。 这是我使用的代码: if(isset($_SESSION['wwerror'])){ $wwerror = $_SESSION['wwerror']; echo "$wwerror"; $wwerror = ''; $_SESSION['wwerror'] = ''; echo '<br>'; }; 在第二次或更高的运行中,为什么在我使用isset函数

我的网站代码有问题。我只在设置了某个变量时才尝试回显a。变量未设置,但仍显示在我的网站上。 这是我使用的代码:

if(isset($_SESSION['wwerror'])){
    $wwerror = $_SESSION['wwerror'];
    echo "$wwerror";
    $wwerror = '';
    $_SESSION['wwerror'] = '';
    echo '<br>';
};

在第二次或更高的运行中,为什么在我使用isset函数时,它会一直回显?仍然认为设置了空白字符串。您需要先取消设置该变量:

unset($_SESSION['wwerror']);

这是因为你没有取消设置它,但你告诉它是[空字符串]

if(isset($_SESSION['wwerror'])){
    echo $_SESSION['wwerror'];
    unset( $_SESSION['wwerror'] ); // use unset instead of [empty string]
    echo '<br>';
};

您正在将会话变量设置为空字符串。您应该使用unset来取消设置变量

<?php
    unset($_SESSION['wwerror']);
?>

简而言之:在循环时读取请显示var\u dump$\会话的输出。我敢打赌$_SESSION['wwerror']设置为空字符串。while循环与此有什么关系?@Martijn我感觉OP想通过使用$_SESSION['wwerror']=;,打破if语句;,但是这个声明已经被证实了,所以没有用。为什么人们会对此投反对票?如果你开始的话,这实际上是一个好问题。将其设置为空字符串似乎是将其取消设置,如果您不知道您实际上只是将其设置为字符串类型$varthanker,您是对的。非常好的解释,+1表示感谢。我想这可能会帮助其他人找到这个话题:真的很好!谢谢,这帮了我的忙!
<?php
    unset($_SESSION['wwerror']);
?>