我有以下代码:
function get_error(){
$update = "";
if($_SESSION['sessionName'][0] === 1){
$update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
$_SESSION['sessionName'][0] = 0;
}
return $update;
}
使用这个if语句失败,并且get_error返回“”,就像它将$ _SESSION ['sessionName'] [0]设置为0然后运行if语句一样。
这确实有效:
function get_error(){
$update = "";
if($_SESSION['sessionName'][0] === 1){
$update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
//$_SESSION['sessionName'][0] = 0;
}
return $update;
}
为什么注释掉if块内的会话更新(在满足条件并且已设置$ update之前甚至不应该运行)。在这一个get_error返回html并正常工作。
我真的无法理解这一点,任何帮助都会非常感激。
编辑:我也会在调用此函数之前设置会话:
$_SESSION['sessionName'] = array(1,10);
答案 0 :(得分:0)
你试过这个:
get_error($_SESSION['sessionName'][0]);
function get_error(&$whatever){
$update = "";
if($whatever === 1){
$update .= "<div class='good'>You have just driven " . convertMiles($_SESSION['sessionName'][1], $this->units) . ".</div>";
$whatever = 0;
}
return $update;
}
HTH