php的if else
无效__construct()
。如果SESSION不为空,我创建它,并记录,否则我记录它。但是没有日志发生{if {} {log} else {log}。它只记录if else之后的最后一行。
<?php
class Controller {
public function __construct() {
// parent::__construct();
if( empty($_SESSION) ) {
$nowStr = '' . time() .'_';
$sesname = !empty( $givArr['sesname'] ) ? $givArr['sesname'] : uniqid ($nowStr).uniqid() ;
$oldSesname = session_name($sesname);
session_start();
$_SESSION['name']=$sesname;
file_put_contents( PATH_LOG . 'n ses171113', PHP_EOL.' ###################### src\core\Controller.php STARTED _SESSION='. json_encode( $_SESSION ) . PHP_EOL.PHP_EOL, FILE_APPEND ) ;
} // DOES NOT LOG NEVER
else {
file_put_contents( PATH_LOG . ' ses171113', PHP_EOL.' ###################### src\core\Controller.php CONTINUE _SESSION='. json_encode( $_SESSION ) . PHP_EOL.PHP_EOL, FILE_APPEND ) ;
} // DOES NOT LOG NEVER
file_put_contents( PATH_LOG . ' ses171113', PHP_EOL.' ###################### src\core\Controller.php case out of scope =' . PHP_EOL.PHP_EOL, FILE_APPEND ) ; // LOGS
}
答案 0 :(得分:1)
您的代码已损坏。 $_SESSION
是超全局的,所以检查它是否存在,如果徒劳无功,你就开始了会话。除此之外,您还可以访问非现有变量$givArr
。
我强烈建议您在脚本的第一行执行error_reporting(E_ALL);
,因为您只是将所有有用的错误报告静音。您还应该考虑对代码进行静态分析。