Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在IF构造中设置变量?_Php_Variables - Fatal编程技术网

PHP:在IF构造中设置变量?

PHP:在IF构造中设置变量?,php,variables,Php,Variables,我可以在if构造中设置变量吗?一般来说,在哪里可以设置变量 function set_login_session ( $passhash ) { $_SESSION['login']['logged_in'] = 1; if ( ERROR ) return false; } // Does it set the Session variable? if ( set_login_session ( $passhash ) === false) return false

我可以在if构造中设置变量吗?一般来说,在哪里可以设置变量

function set_login_session ( $passhash ) 
{
    $_SESSION['login']['logged_in'] = 1;
    if ( ERROR ) return false;
}

// Does it set the Session variable?
if ( set_login_session ( $passhash ) === false)
    return false;

是的,你可以,这是允许的。但问题是,如果if没有运行,而您错误地处理了这种情况,该怎么办

所以通常我会在函数的最宽范围内初始化我的大变量,而临时变量可以在某些东西中设置


但你应该意识到你的情况。您正在初始化一个全局变量。

是的,您可以,而且是允许的。但问题是,如果if没有运行,而您错误地处理了这种情况,该怎么办

所以通常我会在函数的最宽范围内初始化我的大变量,而临时变量可以在某些东西中设置

但你应该意识到你的情况。您正在初始化一个全局变量。

简短回答 对

长话短说 如果此脚本先前调用了start_session()(或设置了session.auto_start配置标志),则可以使用superglobal$\u会话数组在任何位置设置会话变量。

Short answer 对

长话短说
如果此脚本先前调用了start\u session()(或设置了session.auto\u start配置标志),则可以使用superglobal$\u会话数组在任何位置设置会话变量。

您尚未指定错误变量是什么。如果该值为true表示错误,则set_login_session实际上可以简化为

$_SESSION['login']['logged_in'] = 1;
return !ERROR;
外部代码是

return set_login_session( $passhash );
没有必要进行这种显式布尔值比较

是的,在函数中设置变量是完全有效的,但是要确保始终设置变量,无论采用何种代码路径,这样代码中就不会使用未初始化/未驻留的变量。否则,您就是在自找麻烦,或者至少是在脚本输出中发出了大量警告


如果已启动会话,则应存在$\u会话超全局。如果其中没有['login']['logged_in'],那没关系。

您还没有指定错误变量是什么。如果该值为true表示错误,则set_login_session实际上可以简化为

$_SESSION['login']['logged_in'] = 1;
return !ERROR;
外部代码是

return set_login_session( $passhash );
没有必要进行这种显式布尔值比较

是的,在函数中设置变量是完全有效的,但是要确保始终设置变量,无论采用何种代码路径,这样代码中就不会使用未初始化/未驻留的变量。否则,您就是在自找麻烦,或者至少是在脚本输出中发出了大量警告


如果已启动会话,则应存在$\u会话超全局。如果其中没有['login']['logged_in'],那没关系。

如果我将变量初始化为If函数的参数,会怎么样?我的意思是:if(initialise_var()==false)…如果我理解正确,它必须设置variabless,否则它无法计算if-statement。这部分“if没有运行,而您错误地处理了这种情况”。需要一些澄清,我前面问题的原因。如果条件语句没有运行。你期望以后的价值。那么这可能会导致问题。因为没有设置值。如果我将变量初始化为if函数的参数,会怎么样?我的意思是:if(initialise_var()==false)…如果我理解正确,它必须设置variabless,否则它无法计算if-statement。这部分“if没有运行,而您错误地处理了这种情况”。需要一些澄清,我前面问题的原因。如果条件语句没有运行。你期望以后的价值。那么这可能会导致问题。因为没有设置该值。