php基础语法(文件加载和错误)

文件加载

4个文件加载的语法形式(注意,不是函数):

include,  include_once,  require, require_once;

他们的本质是一样的,都是用于加载/引入/包含/载入一个外部文件到当前php代码中来。

他们只在2个方面有细微区别:

1,如果加载文件失败,则有不同的处理规则;includerequire不同

2,如果加载文件重复,则有不同的处理规则;XXXXXX_once不同;

3,他们都是语法结构,而非函数,使用形式可以有两种:

3.1  include  ‘文件路径’;

3.2  include (‘文件路径’);

include_once include的区别:前者能够保证不会被重复加载

require include的区别:

如果被包含文件不存在,即引用失败(出错)时,include发出警告并继续执行后续代码require直接终止。

 

错误处理

语法错误:

程序没法运行,直接提示语法错误。

 

运行时错误:

只有程序运行到某行,或在某些特定的情形下运行才会发生的错误。

 

逻辑错误:

程序从头到尾运行都没有发生(并提示)错误,但程序运行计算的结果是错误的。

系统错误:

E_ERROR:系统严重错误

一发生,程序立即停止执行。

E_WARNING:系统警告

一发生,提示错误,并继续执行。

E_PARSE:语法错误

一发生,提示错误,而且代码完全不会运行——在运行之前先检查语法。

E_NOTICE:系统提示

一发生,提示错误,并继续执行。

用户自定义错误

只有3个:

E_USER_ERROR;

 

E_USER_WARNING;

 

E_USER_NOTICE;

就是由程序员通过程序代码而“产生”一个错误。

语法:

trigger_error(“错误提示”  用户错误代号);

 

错误的显示控制

网页中显示(提示)错误信息,是可以进行控制的,有2种途径:

1,在php.ini文件中设定,对所有php程序都有效;

2,在当前脚本文件中,只对当前脚步文件有效。

 

错误的显示有2个方面可以进行控制;

1,设定是否显示:display_error:

php.ini中;display_error = On; //表示显示, Off表示不显示;

脚本中:  ini_set(“display_error”,  1);  //1表示显示, 0表示不显示,也可以用truefalse

脚本中的设定优先级高。

2,设定显示哪些级别的错误——依赖与第一项设定为显示的情况。

php.ini文件中:

error_reporting = E_NOTICE; //只显示E_NOTICE错误

error_reporting = E_NOTICE | E_WARNING; //显示E_NOTICEE_WARNING错误

error_reporting = E_NOTICE | E_WARNING | E_USER_ERROR;

//显示E_NOTICEE_WARNINGE_USER_ERROR错误

在代码中设定:

ini_set(“error_reporting”,  E_NOTICE); //只显示E_NOTICE错误

ini_set(“error_reporting”,  E_NOTICE | E_WARNING); ////显示E_NOTICEE_WARNING错误

ini_set(“error_reporting”,  E_ALL | E_STRICT & ~E_NOTICE); //只关闭E_NOTICE错误

 

ini_set()含义可以设定几乎所有php.ini中的设定项,形式如下:

ini_set(“设定项名称” ,值); //这种设定都只对当前脚本有效,而且无需重启apache,很方便。

另一个对应函数是:ini_get(“设定项名称”);//用于获取某项的值。

记录错误日志

在开发阶段,我们通常都是显示所有错误——意图解决错误

在产品阶段,我们通常都是隐藏所有错误——并同时将错误信息记录到文件中——错误日志文件。

我们可以自己查看错误日志以解决开发阶段没有发现的错误问题。

记录错误日志同样有2种途径:

1,在Php.ini文件中设定:

log_errors = On //用于设定是否记录错误日志,On记录,Off不记录

error_log = “错误日志文件名”; //设定错误日志的文件名

此时,该文件没有给定路径,则系统会在每个文件夹下建立该文件并记录进去。

 

error_log还有一个特殊值可以使用:

error_log = syslog; //此时不会记录错误日志文件,而是把错误信息写入到系统错误日志中

 

posted @ 2018-01-26 15:04  雍家培  阅读(232)  评论(0编辑  收藏  举报