php循环中断(break、continue)、循环语句、流程控制语句、goto语句、控制脚本执行循序、文件加载、加载路径和错误级别、系统触发以及做法步骤

5 篇文章 0 订阅
3 篇文章 0 订阅

在php中,该两个循环有更强的能力:中断”更多层“的循环,语法如下:
         1. break 正整数n;  //比如1,2,3;
         2. continue 正整数n;  //比如1,2,3;

循环的层,指的是从当前中断语句(break或continue)算起,往代码的“外部”数循环的个数,就是层数:

$s1=0;
$s2=0;
$s3=0;
$s4=0;
for ($i=0; $i < 2; $i++) { //循环一                    
	$s1++;
	for ($j=0; $j <2 ; $j++) { //循环二
		$s2++;
		for ($k=0; $k <2; $k++) { //循环三
			$s3++;
			for ($l=0; $l <2 ; $l++) { //循环四
				$s4++;
				break 2;
			}
		}
	}
}
echo "s1值".$s1;	        //s1值2
echo "<br>s2值".$s2;		//s2值4
echo "<br>s3值".$s3;		//s3值4
echo "<br>s4值".$s4;		//s4值4
$s1=0;
$s2=0;
$s3=0;
$s4=0;

for ($i=0; $i < 2; $i++) { //循环一                    
	$s1++;
	for ($j=0; $j <2 ; $j++) { //循环二
		$s2++;
		for ($k=0; $k <2; $k++) { //循环三
			$s3++;
			for ($l=0; $l <2 ; $l++) { //循环四
				$s4++;
				continue 2;
			}

		}
	}
}
 
echo "s1值".$s1;	        //s1值2
echo "<br>s2值".$s2;		//s2值4
echo "<br>s3值".$s3;		//s3值8
echo "<br>s4值".$s4;		//s4值8

了解一些循环
for(循环变量初始化;循环变量的条件判断;循环变量的改变){循环体}

while 循环:
循环变量初始化;
while(循环变量的条件判断){
循环体;
循环变量的改变;
}

do while循环:
循环变量的改变
do{
    循环体;
    循环变量的改变
} while ( 循环变量的条件判断) ;

 流程控制的替代语法
.if(...)。。。。。。。endif.
.if(...)。。。。。。。else。。。。。。endif.
.if(...)。。。。。。。。elseif(...)。。。elseif(...)。。。。else。。。。。endif.
.switch(...):case...case...endSwitch.
.while(...):。。。。。endwhile;
.for(...;...;...)。。。。endfor;

goto语句:

标识符1:
语句1.....
goto 标识符1: //含义是:立即转到表示符1所在位置的下一行继续执行
语句2.....
标识符1:
        语句3....
goto 标识符2:

for ($i=1; $i < 10; $i++) { 
	echo $i;
	if ($i == 5) {
		goto g1;
	}
}
g1:
	echo "gg1";
//12345上山打老虎

控制脚本执行循序

die(字符串)/exit(字符串):先运算(输出)
输出该字符串后,立即停止php的执行!及后续程序不再执行,暴露后续的其他所有php和html代码部分。他们也可以不加字符串,而是直接停止。

sleep():
让程序停止运行指定的秒数,然后等待过了那个时间后,就继续运行!  单位秒

文件加载

基本语法: include(),require(),include_once(),require_once().
include "文件路径"  或者   include("文件路径")  他们可以载入php,html 

include 加载失败(找不到文件),报错。还会执行后续代码;
     include  不判断是否重复  可能会出现重复。
     include_once   会判断之前是否载入。内容不重复
     
require 加载失败,报错终止执行;
      require  不判断是否重复  可能会出现重复。
      require_once  会判断之前是否载入。内容不重复 

 文件加载路径

例子 include 为例
3种路径形式
相对路径:
相对当前网页文件所在位置来定位某个被加载的文件路径位置,主要依赖一下2个特殊的路径符号:

 /  :表当前位置,即当前网页文件所在的位置(目录);
 ../:表示上一级位置,即当前的网页文件所在的位置的上一级位置(目录);
 比如:include './page.php'

 绝对路径:
本地绝对路径:例如  -C:\Program Files\Java\jdk1.7.0_21
网络绝对路径:例如  -php循环中断(break、continue)、循环语句、流程控制语句、goto语句、控制脚本执行循序、文件加载、加载路径和错误级别、系统触发以及做法步骤_Teddy Boy的博客-CSDN博客
  __DIR__;   //获取当前文件路径
  $root = $_SERVER['DOCUMENT_ROOT']; // 获取当前站点的根目录

“无路径”(不建议使用)

系统自动去寻找判断,直到根目录位置
比如:include 'page.php' 

最后,文件加载时 return 返回数据  会终止载入,

错误分级 

php语言中,将各种错误进行了不同级别的分类归纳,并形成大约有10几个级别的错误,这就是技术层面的错误分级
每个级别的错误,都有一个“代号”,这个代号其实也就是一个系统内部的“常量”

  E_ERROR:     致命错误   
  E_WARNING:      警告性错误
  E_NOTICE:      提示性错误


系统触发

E_ERROR:     致命错误   无法执行程序 不存在的变量或者常量,
  E_WARNING:      警告性错误  
  E_NOTICE:      提示性错误

function GetBinStr($e){
	$s = decbin($e);//这是一个二进制数字字符串
	$s1 = str_pad($s,16,"0",STR_PAD_LEFT);
	return $s1;

}
echo "<pre>";
echo "<br>E_ERROR=" .E_ERROR.",\t\t其对应二进制值为".GetBinStr(E_ERROR);
echo "<br>E_WARNING=" .E_WARNING.",\t\t其对应二进制值为".GetBinStr(E_WARNING);
echo "<br>E_NOTICE=" .E_NOTICE.",\t\t其对应二进制值为".GetBinStr(E_NOTICE);
echo "<br>E_USER_NOTICE=" .E_USER_NOTICE.",\t其对应二进制值为".GetBinStr(E_USER_NOTICE);
echo "<br>E_ALL=" .E_ALL.",\t\t其对应二进制值为".GetBinStr(E_ALL);
echo "</pre>";

错误报告的显示问题

是否显示错误报告:
    2种显示设置:
        1、 php.ini文件,设定display_erros的值,on(显示)、off(不显示)
            注意:前提条件都是我们apache已经装载了PHP.ini文件————这一点需要在apache的配置文件httpd.config中加入如下一行:
                    PHPIniDir  "php.ini文件的位置(所在目录路径)"
        2、 直接在php的脚本文件中使用函数ini_set()来对其进行设置:
            ini_set("display_errors",0)      // 0为不显示 、1为显示
            只影响单页面;
            
            
错误日志的记录问题
        两个问题,每个问题都有两种做法:
        1.是否记录:
        php.ini:
            log_errors = On/Off
            
        脚本文件中:
            ini_set("log_errors",1)  1显示/0 不显示,
        
        ini_set("php配置项",值); //用于脚本中设置php.ini中的某项值
        $V1=ini_get("php配置项"); //用于获取php.ini中的某项值
        
        2.记录在哪里:
            ini_set("error_log","syslog"), //记录到系统日志文件中    
            系统日志文件在这里:控制面板》管理工具》事件查看器》window日志》应用程序:
            


自定义错误处理器
  一旦发生错误,用来处理该错误的一种“机器”   其实就是一个函数。
  自定义错误处理,就是:让系统不要去处理错误了,而完全有我们(开发者)来对错误进行处理:显示和记录。

做法两步:
1. 设定要用于处理错误的函数名!
  set_error_handler("fl"):
2. 去定义函数:
     function(){
         这里可以任意写代码:自然正常是去显示错误报告,和记录错误日志。

     }
我们准备要自己来定义错误“处理器”了;
第一步:设定要作为错误处理的函数名:
Set_error_handler("my_error_handler");
第二步,定义该函数:
该函数需要定义4个形参,分别代表:
$errCode:代表错误代号(级别)
$errMsg:代表发生错误信息内容
$errFile:代表发生错误文件名
$errLine:代表发生错误行号
不要在程序调用;而是错误发生自动被执行

 function my_error_handler($errCode,$errMsg,$errFile,$errLine){
     $str .= "<p><font color='red'>问题来了,发生错误:</font>"
     $str .= "<br />错误代号为:".$errCode;
     $str .= "<br />错误内容为:".$errMsg;
     $str .= "<br />错误文件为:".$errFile;
     $str .= "<br />错误行号为:".$errLine;
     $str .= "<br />错误时间为:".date("Y-d-m H:i:s");
     $str .= "</p>"
     echo $str; //输出该“构建”的错误完整处理结果,也可以将该内容“写入”到某个文件中去,也就是所谓记录错误日志!
     
 }

 拓展:

str_pad($str1,长度n,$str2,位置w)函数的作用:
        将字符串$str1,用字符串$str2填充到指定的长度n,而且可以指定填充的位置w,左边还是右边填充

  • STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
  • STR_PAD_LEFT - 填充字符串的左侧。
  • STR_PAD_RIGHT - 填充字符串的右侧。默认。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值