流程控制
分支结构:
if语句
switch
循环结构
while循环:
do while
for循环
foreach循环
循环的中断:
break 【n】; 对该循环语句完全终止,然后去执行该循环语句的“后续语句”;
continue 【n】;对该循环语句的当次循环停止执行,然后回到循环的“头部”继续下一次的循环工作(比如判断是否满足条件);
流程控制的替代语法:
if ( 条件 ) :
语句块1。。。
else :
语句块2。。。
endif;
goto语句:不要去用!
控制脚本执行顺序
die(字符串)/exit(字符串):完全停止脚步的执行。
sleep($n):让脚本停止执行指定的秒数,然后继续执行后续代码;
文件加载
综述和基本语法:
include, include_once, require, require_once
他们含义和用法都几乎一样!
区别只在于2点:载入失败时的处理,载入重复文件时的处理
文件加载的路径问题:
相对路径(常用):
./
../
绝对路径:
2种:
本地绝对路径(常用)
形式是: include ‘c:/d/e/dir/page1.php’; //但实际代码中,绝对不要用这种直接路径
常用的其实是这样的:
include __DIR__ . “\page1.php”;
include $_SERVER[‘DOCUMENT_ROOT’] . ‘\page1.php’;
互联网绝对路径:
include “http://www.abc.com/page1.php”; //实际这里载入的通常也都是html文件
//因为该服务器会将该php文件执行后返回过来
include “http://www.abc.com/page2.html”;
“无路径”(不推荐):
include ‘page1.php’; //通常会在当前网页所在路径找到该文件。
文件载入和执行过程详解
第一步:退出当前include所在的php代码环境,进入html代码环境
第二步:然后将要载入的文件内容“放置”在此位置,并执行之;
第三步:最后,再重新进入php模式,继续执行之前include语句的后续语句;
4个载入语句的区别
include和require的区别:
前者载入失败,会继续执行后续程序,后者却会停止脚本执行;
include_once和require_once的区别:
同include和require的区别
include和include_once的区别:
前者不会判断文件的重复性,如果多次加载,都会加载进来。后者有内部判断,能够保证只加载一次。
require和require_once的区别:
同 include和include_once的区别
在被载入文件中return语句的作用:
1,能够中断载入过程,即该语句之后的被载入文件内容不再载入;
2,还能够用它来返回一个数据——主文件中自然可以去“接收”该数据;
错误处理
错误的分类:语法错误,运行时错误,逻辑错误。
错误的分级:其实就是一些错误的代号而已:
系统错误: E_ERROR, E_WARNING, E_NOTICE
用户自定义错误:E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE
其他:E_STRICT, E_ALL
错误的触发
系统触发:确实有错误,然后就触发该错误了。
自定义触发:本来是没有错误,但因为我们业务的需要,要将某些情况“规定”为错误,此时我们就可以自己来主动创建错误——自定义触发。
错误报告的显示问题
是否显示错误报告(display_errors):
php.ini中:display_errors = On 或 Off
在php脚本代码中: ini_set(“display_errors”, 1或0);
显示哪些级别的错误报告(error_reporting):
php.ini中:error_reporting = 若干个错误代号的“按位或”运算;
在php脚本代码中: ini_set(“error_reporting”, 若干个错误代号的“按位或”运算);
error_reporting = E_NOTICE | E_WARING | E_ERROR //显示该3种;
error_reporting = E_ERROR | E_USER_ERROR //显示该2种严重错误
错误日志的记录问题
是否记录log_errors:
php.ini中:log_errors = On 或 Off
在php脚本代码中: ini_set(“log_errors”, 1或0);
记录到哪里error_log:
error_log = “一个txt文件名”;
error_log = “syslog”; //会记录到操作系统的事件日志中。
自定义错误处理器:
其实就是我们自己来对错误进行这些控制:
显示不显示,显示什么,记录不记录,记录什么,记录到哪里。
做法,分2步:
1,设定要进行自定义错误处理的函数名;
如果一旦设定了该函数名,此时系统就“交出错误处理权”,即所有错误处理的问题,都应该我们自己来——不过,系统的致命错误(E_ERROR),还是由系统处理——其实此时脚本已经停止运行。
2,定义该函数: