循环控制

大部分和c/java同样

  • for循环
  • while循环
  • do while循环
  • foreach循环(特有)

循环中断 :

1、break:
用于全然停止某个循环,让运行流程进入到循环语句后面的语句 2、continue
用于停止当前正在进行的当次循环,而进入循环的“下一次”过程中去 php中,该两个循环有更强的能力,中断“很多其它层”循环,语法例如以下 break 正整数n; // 比方1,2,3
continue 正整数n; // 比方1,2,3 n代表循环的“层”。如 for(...){ // 循环第一层
for(...){ // 循环第二层
for(...){ // 循环第三层 }
}
}

goto语句:学此语句的目的是不要用它

die(字符串)/exit(字符串):

exit是die的同义词,他们也能够不加字符串,而是直接停止

作用:输出该字符串后。马上停止php的运行。即兴许程序不再运行。包含兴许的其它全部php和html代码部分

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

注意单位是”秒“

文件加载

综述和基本的语法(能够当成是一个函数

1. 有四个文件加载语句:include,require,include_once,require_once;
2. 他们的使用形式全然一样,比方:include "要加载的文件路径";或include("要加载的文件路径");
3. 他们的含义也差点儿全然一样,仅仅是在加载失败时或是否反复加这样的情况有所不同;
4. 它们能够加载php和html文件。

文件路径问题(有3种路径形式)

(1) 相对路径:是相对于当前文件所在位置来定位某个要加载的文件位置,主要依赖下面两个特殊的路径符号

两个特殊的路径符号

    1、 ./   : 表示当前位置。即当前网页文件所在的位置(文件夹)
2、 ../ : 表示上一级位置,即当前网页文件所在位置的上一级位置(文件夹) 我们须要这两个符号来传达位置信息。比方: include "./head.php"; // 当前网页所在文件夹的head.php文件

(2) 绝对路径(分两种)

1、本地绝对路径

    比方:
include "c:/d1/d2/p1.php";
include "f:/f1/abc/h2.html";
特别注意,我们事实上差点儿度不应该在代码中直接写这样的本地绝对路径,事实上绝对路径还是非经常常使用的。可是不应该直接写出本地路径来,而是应该通过某种方式动态获取绝对路径。即通过拼凑路径来实现,能够通过_DIR_和$_SERVER("DOCUMENT——ROOT")等系统提前定义变量常量来获取 2、网络绝对路径 比方:
include "http://www.baidu.com/index.php";

(3) “无路径”(不推荐)

形式:

    include "文件名称";

比方:

    include "head.php"; // 系统会去猜,事实上系统做了一些工作后会去当前路径找这个文件。此时==include "./head.php";

文件加载和运行过程具体解释

  • 第一步:从include语句退出php脚本模式(进入html代码模式)
  • 第二步:加载include语句所设定的文件里的代码,并运行之(如同在当前文件里一样)
  • 第三步:退出html模式又一次进入php脚本模式,继续运行之后的代码

四个加载语句的差别

(1)include 和 require 的差别:
1. include 加载失败时(即没有找到该文件)。报一个“提示错误”。然后继续运行兴许代码
2. require 加载文件失败时。报错并马上终止程序运行
通常,require用于在程序中,兴许代码依赖于加载的文件的时候 (2)include_once 和 require 的差别:
同include 和 require 的差别 (3)include 和 include_once的差别:
1. include 加载的文件不推断是否反复。仅仅要有include 语句。就会别加载一次,即此时可能导致反复加载
2. include_once 加载的文件会有内部推断机制是否“前面代码”已经加载过。假设加载过,就不再加载,否则加载 (4)require 和 require_once 的差别:
同include 和 include_once 的差别

被加载文件的return 语句的作用:

  • 终止被加载文件兴许代码的加载
  • 返回数据给宿主文件

错误控制

错误分类(通常分为三种):

  • 语法错误:程序运行之前,都要检查语法,假设语法错误,就会马上报错,而且不会去运行程序;

  • 运行时错误:就是在程序语法检查通过后。開始运行程序并在此过程中遇到的错误。

    常见的有三种:

    1. 提示性错误。
    2. 警告性错误;
    3. 致命错误。

  • 逻辑错误:指的是本身能够正常运行。没有保存–但“计算结果”却错了。

错误的分级:

 php语言中,将各种错误进行了不同级别的分类归纳,并形成大约有10几个级别的错误,这就是技术层面的错误分级。

每一级别的错误。都有一个代号,这个代号也就是系统内部的”常量而已“。比方:

系统常见错误:

E_ERROR : 致命错误
E_WARNING : 警告性错误
E_NOTICE : 提示性错误 用户可自己定义的错误:
E_USER_ERROR:
E_USER_WARNING:
E_USER_NOTICE: 其它:
E_STRICT:严谨性语法检查错误
E_ALL:代表全部错误 具体參考手冊-》提前定义常量

错误的触发(让错误发生):

有两种方式:

(1)系统触发:程序运行到某行代码,确实出现了某种错误。此时系统就会报错。--这就是触发了系统错误
1. E_ERROR:致命错误。导致程序无法运行兴许语句,比方调用了一个不存在的函数! 2. E_WARNING:警告性错误,会输出错误提示。并继续运行兴许代码(也可能看具体情况,比方require),比方include一个不存在的文件
3. E_NOTICE:提示性错误。会输出错误提示。并继续运行兴许代码。比方:使用不存在的变量或常量
(2)自己定义触发:当我们处理某些数据的时候。本来数据本身是没有错误的,但依据应用(业务)的须要。会要求数据满足某种条件,而该数据并不满足的时候,我们就能够在程序中“主动”触发(创建)一个错误。以表明该数据的”非法性“ 语法形式:trigger_error(“错误提示内容”,错误常量);

错误报告的显示问题(就是显示在网页上的错误提示内容!):

(1)是否显示报告:

    两种方法

    (1)在php.ini文件里。设定display_errors的值。Off(不显示)。On(显示)

    (2)直接在php脚本文件里使用函数ini\_set()来控制是否显示
ini_set("display_errors",0); // 0不显示错误报告,1显示报告 注意: 1. 无论哪种形式,该单词都是一样的:display_errors;
2. 使用php.ini配置,影响的是全局(即全部的php网页);(前提是apache装载了php.ini)
3. 在某个脚本代码中使用ini_set()设置,就仅仅影响该脚本代码本身--这是经常使用的方式
4. 脚本中的设置优先于php.ini的设置 (2)显示哪些级别的错误报告(error_reporting) 两种做法: 做法1:在php.ini中改动error_reporting的值,如:
error_reporting = E_NOTICE | E_WARNING | E_ERROR
error_reporting = E_ERROR | E_USER_ERROR,要想显示所全部的错误,要将error_reporting = E_ALL | E_STRICT 做法2:在当前的脚本代码中: 跟php.ini中设置事实上是一样的,举一些样例例如以下: ini_set("error_reporting",E_NOTICE); // 显示一种错误
ini_set("error_reporting",E_NOTICE|E_WARNING); // 显示两种错误
ini_set("error_reporting",E_NOTICE|E_WARNING|E_ERROR); // 显示三种错误
ini_set("error_reporting",E_ALL|E_STRICT); // 这才代表显示全部错误(php5.3),5.4中E_ALL代表全部错误 显然,前提是“display_errors”设置为On()或1
,表示显示错误

错误日志的显示问题:

 错误日志事实上就是错误报告,仅仅是它会“写到文件里”,此时就称为错误日志,也有两个问题。每一个问题也有两种做法

(1)是否记录:

php.ini中:
log_errors = On 或 Off
脚本中:
ini_set("log_errors",1); 或 0 补充一句
1. ini_set("php配置项",值); // 用于脚本中设置php.ini中某项设置的值
2. $v1 = ini_get("php配置项"); // 获取php.ini中某项设置的值 (2)记录到哪里 error_log 一般仅仅有两种写法: 写法1:直接使用一个文件名称,此时系统会自己主动在每一个文件夹下都建立该文件名称,并用其记录该文件夹下的全部网页文件发生的错误信息。
如:ini_set("error_log","my_error.txt"); // 记录到该文件里 写法2:使用一个特殊的名字syslog。此时全部错误都会记录到系统日志中。即ini_set("error_log","syslog"); // 记录到系统日志中 系统日志文件位置:控制面板》管理工具》事件查看器》window日志》应用程序: 自己定义错误处理器:就是一旦错误发生,用来处理该错误的一种“机器”--事实上就是一个函数 自己定义错误处理,就是指让系统不要处理错误了,而全然由我们(开发人员)来对错误进行处理:显示和记录 如: // 我们准备要自己来定义错误“处理器”了
// 第一步:设定作为错误处理的函数名
set_error_handler("my_error_handler");
// 第二步:定义该函数
// 该函数能够形式能够不须要參数,但我们能够给4个參数来接受错误相关信息,由于这个函数系统会调用并传入错误相关信息。所以我们自己不该调用这个函数
// 四个參数各自是错误代号,错误内容,错误文件,错误行号
function my_error_handler($errCode,$errMsg,$errFile,$errLine){
$str = "";
$str.="<p><font color='red'>大事不好,错误发生!</font>";
$str .="<br />错误代号为:".$errCode;
$str .="<br />错误内容为:".$errMsg;
$str .="<br />错误文件为:".$errFile;
$str .="<br />错误行号为:".$errLine;
echo $str; // 输出该“构建”的错误完整处理结果
// 也能够将该内容“写入”到某个文件里,也就是所谓的记录错误日志。这须要文件操作
}

php循环,die/exit脚本执行控制,文件载入及错误控制的更多相关文章

  1. linux下shell脚本执行jar文件

    最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...

  2. centos上自动执行脚本执行php文件

    1 先编写执行PHP文件的脚本 vi php.sh #!/bin/sh /usr/bin/php /etc/1.php 2把php.sh添加到自动执行任务中 cd /etc/ vi crontab * ...

  3. sh 脚本执行sql文件传参数

    一.前言 今天做数据删除,用的命令行输入参数,并且调用执行的sql文件,我采用了sed命令,进行替换. sh脚本如下 #! /bin/sh echo "Please enter the ba ...

  4. RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)

    RMAN 程序的兼容性 RMAN 环境由以下5部分组成:(1) RMAN executable(2) Recovery catalog database(3) Recovery catalog sch ...

  5. oracle控制文件丢失恢复

    在学习群里有个同学误删除了控制文件,于是我也把自己数据库的控制文件删除了,看看能不能进行恢复,以下是整个实验的过程~~在做之前,先看看控制文件的备份方式:1.生成可以重建控制文件的脚本.2.备份二进制 ...

  6. SQLLoader1(简单测试,以控制文件方式导入数据)

    1.创建表:SQL> conn scott/tiger@orcl;已连接. SQL> CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1=2; 表 ...

  7. Oracle控制文件操作

    控制文件是连接instance和 database的纽带.记录了database的结构信息. 控制文件是1个2进制文件.记录的是当前database的状态. 控制文件可以有多个,在参数文件中通过con ...

  8. bat脚本运行py文件失败(一闪而过)

    简单记录下问题及原因,方便回顾. 问题 通过 bat 脚本运行 py 文件时,终端一闪而过,没能成功运行. 查证后发现问题出在编码上: 首先检查下bat文件编码格式(推荐 notepad++ ) 打开 ...

  9. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

随机推荐

  1. nodejs全局安装路径的位置

    一般nodejs安装在默认的C盘,如果不知道安装在哪里,可以打开控制面板-系统和安全-系统-高级配置中找到 所谓全局安装: 是指安装在node中node_module的根目录里,可以在电脑的任何位置调 ...

  2. android中TextView内容竖向显示

    项目中遇到需要textview内容竖着排的需求,如图所示: 网上那些“教程”并不能达到需要的效果,发现有一个属性可以支持这种效果,android:ems=“*”,这是属性表示一行只显示*个字符. 具体 ...

  3. HashMap , TreeMap , TreeMap 默认排序

    Java代码  import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java. ...

  4. JS高级——原型链

    构造函数 构造函数是特殊的函数,里面没有returen返回值 new的过程中,会自动将对象返回,不需要return new的过程中,会执行函数中的代码,会将创建的对象赋值给构造函数中的this 基本概 ...

  5. 易买网之smartupload实现文件上传

    经过俩个星期的奋斗,易买网项目完工.在之前,实现图片的上传,走过许多弯路,原来是好多基础的知识忘记了,没把smartupload文件包添加组件jar包至WEB-INF/lib包中,在此特别重视,做下文 ...

  6. 顺序表查找及其优化(Java)

    顺序表查找(线性查找): private static void Ordersearch(int[] arr,int num) { for (int i = 0; i < arr.length; ...

  7. (转)分布式文件存储FastDFS(五)FastDFS常用命令总结

    http://blog.csdn.net/xingjiarong/article/details/50561471 1.启动FastDFS tracker: /usr/local/bin/fdfs_t ...

  8. HDU_Reward_拓扑排序

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  9. SYN(synchronous)TCP/IP

    SYN(synchronous)是TCP/IP建立连接时使用的握手信号.在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息, ...

  10. Appium 使用android_uiautomator定位元素时报错: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource

    使用 android_uiautomator 定位元素时(现在用的还不太熟,对于这个方法还需要加深了解)报错: 报错信息:The requested resource could not be fou ...