Php 如何在codeigniter中使变量声明成为可选的?

Php 如何在codeigniter中使变量声明成为可选的?,php,codeigniter,Php,Codeigniter,来自模块化的php编程环境,我习惯于在php中使用变量,而不管它们是否实例化 我已经使用codeigniter大约一个月了,我注意到它严格地实现了在变量未定义/未声明的情况下不使用变量 我想知道这背后的目的是什么,它与对未声明的变量不严格有什么区别 有没有一种方法可以在codeigniter中禁用此功能,以防我坚持使用未声明的变量?如果是这样,我会得到什么缺点?初始化所有变量的一个重要原因是安全性。如果你穿上了(你不应该穿),这真的很重要。但除此之外,如果您的变量始终处于已定义和已知的状态,它也

来自模块化的php编程环境,我习惯于在php中使用变量,而不管它们是否实例化

我已经使用codeigniter大约一个月了,我注意到它严格地实现了在变量未定义/未声明的情况下不使用变量

我想知道这背后的目的是什么,它与对未声明的变量不严格有什么区别


有没有一种方法可以在codeigniter中禁用此功能,以防我坚持使用未声明的变量?如果是这样,我会得到什么缺点?

初始化所有变量的一个重要原因是安全性。如果你穿上了(你不应该穿),这真的很重要。但除此之外,如果您的变量始终处于已定义和已知的状态,它也是一种很好的样式,并有助于调试。如果您养成了总是初始化变量的习惯,并且突然收到关于使用未初始化变量的警告,那么您知道这是由于输入错误,而不是由于无数其他原因。另一个原因是长函数中的变量循环(无论如何都应该避免,但如果不重新初始化变量,可能会变得非常混乱)

因为使用未初始化的变量是一种语言“特性”,所以它在CodeIgniter中仍然可用。CI可能会将默认值设置得比您习惯的更高,这可能会导致比以前更明显的警告



如果这不是您的意思,请澄清您的问题。

在项目根目录下的index.php文件中设置:

error_reporting(E_ALL);
致:

此设置不显示E_通知级别错误


有关更多信息,请查看不初始化变量的缺点是每个未初始化的变量都会出现隐藏的E_note错误。这会产生大量不必要的开销,因为系统必须处理每个E_错误实例,而不管它是由错误报告()记录还是关闭的。

jokeYou始终可以恢复到PHP 4!开玩笑/出于好奇,你能举例说明你在说什么吗?我很确定,如果您试图在PHP中的任何地方处理变量的值,它将抛出空指针异常。您说它不是可选的是什么意思?您是否因为CI打开调试而突然看到很多警告?
error_reporting(E_ALL  & ~E_NOTICE);