在使用Codacy分析我的PHP代码时,我发现了许多由exit()引起的错误;功能。这是一个功能,
public function saveCssForm(){
$data = $_POST;
if(!$data){
// is a direct acess
$this->index();exit();
}
// update the data
$this->csssettingmodel->updateCSS($data);
// save the notifications
$this->notify_update($data['site_id'],$data['lang_key']);
// set the success message
$this->session->set_flashdata('edit_item', 'edited');
// redirect to the view page
$baseUrl = $this->config->item('base_url');
redirect($baseUrl.'index.php/cssSettings/view/'.$this->session->userdata("languageabbr"));
}
public function index()
{
// Denay Direct Access
echo "<hr><h1><center>NO DIRECT ACCESS</h1> </center>";
echo "<center>You are not permitted to access this page </center>";
}
任何避免这种情况的替代方法或建议都会有所帮助。
答案 0 :(得分:2)
Codacy未显示错误;它正在分析代码的质量,并建议在此位置显示exit
不是一个好习惯,因此您可能想要对其进行修复。
首先,通常将应用程序框架设计为具有单个入口点,处理一些逻辑,然后将结果返回到入口点,该结果将输出并清除。从代码的不同点退出将使流程的预测变得更加困难,因为代码的整个部分看上去都是可以到达的,但实际上是在程序退出之后才出现的。
其次,此类代码可用于调试,以在特定点中断执行流程以显示一些中间数据或模拟特定故障。在这种情况下,如果它出现在分析的代码中,则表明您不小心遗漏了调试代码。