zoukankan      html  css  js  c++  java
  • PHP学习3

    控制脚本执行顺序

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

    输出该字符串后,立即停止php的执行!即后续程序不再执行,包括后续的其他所有phphtml代码部分。

     

    exitdie的同义词。他们也可以不加字符串,而是直接停止。

     

    sleep$n)

    让程序停止运行指定的秒数。然后等待过了那个时间后,就继续运行!

     

    注意,其单位是

     

    文件加载

    综述和基本语法:

    1,有4个文件加载语句:include, require, include_once, require_once

    2,他们的使用形式完全一样,比如: include  “要加载的文件路径”; 或: include (“要加载的文件路径”);

    3,他们的含义也几乎完全一样:只是在加载失败时或是否重复加载这种情况,有所不同。

    4,他们可以载入phphtml文件;

     

    文件加载的路径问题:

    前提说明:以下的说明举例,以include为例,也适用于其他3个加载语句;

     

    3中路径形式可以使用:

     

    相对路径:

    是相对于当前网页文件所在的位置来定位某个被加载的文件位置,主要依赖以下2个特殊的路径符号:

    ./ :表示当前位置,即当前网页文件所在的位置(目录);

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

    我们需要用这2个符号来表达位置信息,比如:

    include  ‘./page1.php’; //表示当前网页文件所在位置的page1.php文件;

    include  ‘../page2.php’;

    include  ‘../ab/page3.html’;

     

    绝对路径:

    绝对路径又分2种:

    本地绝对路径:

    比如:

    include  “c:/d1/d2/p1.php”;   

    include  “f:/f1/abc/p2.html”;

    特别注意:我们其实几乎都不应该在代码中直接写这种本地绝对路径!

    但,其实我们这种本地绝对路径的写法是很常用的!

    那怎么做?示例如下:

     1 echo "<p>使用相对路径载入";
     2 include './page1.php';    
     3 
     4 
     5 echo "<p>使用绝对路径载入(方法1)";
     6 include __DIR__ . 'page1.php';    
     7 
     8 
     9 echo "<p>使用绝对路径载入(方法2)";
    10 $root = $_SERVER['DOCUMENT_ROOT'];    //获得当前站点的跟目录
    11 include $root . "day5" . 'page1.php';    

    在被载入文件中return语句的作用

    1,一个载入语句,如果载入成功,其实是有返回值的,为1,如果载入失败,则返回的是false

    (虽然我们通常不去使用该返回值)。

     

    但,如果被载入文件中有return语句,此时就有另外的机制和作用:

    2return语句此时的作用是终止载入过程——return语句的后续被载入文件的代码不再载入。

     运行结果为:

    3return语句也可以用于该被载入文件载入时返回一个数据,形式为:return  XX数据;

     

    错误的分级

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

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

     

    系统常见错误:

    E_ERROR 致命错误

    E_WARNING: 警告性错误

    E_NOTICE: 提示性错误

    用户可自定义的错误:

    E_USER_ERROR 自定义致命错误

    E_USER_WARNING: 自定义警告性错误

    E_USER_NOTICE: 自定义提示性错误

    其他:

    E_STRICT: 严谨性语法检查错误

    E_ALL 代表所有错误

    运行结果为:

     

    自定义触发:

    当我们处理某些数据的时候,本来数据本身是没有错误的,但根据具体应用(业务)的需要,会要求数据满足某种条件,而该数据并不满足的时候,我们就可以在程序中主动去触发(创建)一个错误,以表明该数据的非法性

    语法形式:

    trigger_error(“错误提示信息内容”,  3用户错误代号之一);

    其中触发了用户的致命错误(E_USER_ERROR,也会终止程序的后续执行。

     

    错误报告的显示问题

    所谓错误报告,就是显示在网页上的错误提示内容!

     

    有关错误报告,有2个问题需要处理:

     

    是否显示错误报告(display_errors)

    2种做法可以来设定是否显示:

    做法1

    php.ini文件中,设定display_erros的值,为on(显示),或为off(不显示)

     

    可以修改为:

     

    当然,作为开发阶段,我们都应该显示错误信息。

     

    注意:前提条件都是我们apache已经装载了php.ini文件——这一点,需要在apache的配置文件httpd.config中加入如下一行:

    PHPIniDir  “php.ini文件的了位置(路径)

    比如:

     

     

    方法2

    直接在php的脚本文件中设使用函数ini_set()来对其进行设置:

     

    当然,如果设置为1,就是显示!

     

    注意:

    1,不管哪种形式,该单词是一样的:display:errors

    2,使用php.ini配置,影响的是全局(即所有php网页);

    3,在某个脚本代码中使用ini_set()设置,就只影响该脚本代码本身——这是常用的方式。

    4,脚本中的设置优先于php.ini中的设置。

     

    显示哪些级别的错误报告(error_reporting)

    显然,前提是“display_errors”设置为On(1),表示可以显示。

     

    显示哪些级别的错误报告,也有2个做法:

    做法1:在php.ini文件中;

     

    这个值目前代表所有错误,都显示。

    修改为:

     此时就只显示E_NOTICE级别的错误

    更多示例为:

    error_reporting = E_NOTICE | E_WARING | E_ERROR //显示该3种;

    error_reporting = E_ERROR | E_USER_ERROR //显示该2种严重错误

    要想代表真正的所有错误,应该写为:E_ERROR | E_STRICT,图示如下:

     

     

    做法2:在当前的脚本代码中:

    php.ini中设置其实是一样,举一些例子如下:

    ini_set(“error_reporting”,  E_NOTICE); //就显示该一个级别的错误

    ini_set(“error_reporting”,  E_NOTICE | E_WARNING), //显示2个级别

    ini_set(“error_reporting”,  E_NOTICE | E_WARNING | E_ERROR), //显示3个级别

    ini_set(“error_reporting”,  E_ALL | E_STRICT), //这才代表显示所有错误!

     

    错误日志的记录问题

    错误日志其实就是错误报告,只是它会写入文件中,此时就称为错误日志!

     

    也有2个问题,每个问题也有2种做法:

     

    是否记录log_errors

    php.ini中:

    log_errors = On    Off

     

    脚本中:

    ini_set(“log_erros”,  1);   0

     

    补充一句:

    1ini_set(“php配置项, 值) //用于脚本中设置php.ini中是某项的值。

    2,$v1 = ini_get(“php配置项”) //用于获取php.ini中是某项的值

     

    记录到哪里error_log

    一般就只有2个写法:

    写法1:直接使用一个文件名,此时系统会自动在每个文件夹下都建立该文件名,并用其记录该文件夹下的所有网页文件发生的错误信息。

     

    然后执行一个有错误的网页,并可以观察到:

     

    其中的内容大约为:

     

     

     

    写法2:使用一个特殊的名字“syslog”,则此时所有错误信息都会记录到系统的日志文件中。

    系统日志文件在这里:控制面板》管理工具》事件查看器》window日志》应用程序:

     

     

    然后执行一个有错误的网页,并可以观察到:

     

     

     

    自定义错误处理器

    什么叫错误处理器?

    就是一旦发生错误,用来处理该错误的一种机器”——其实就是一个函数。

     

    自定义错误处理,就是指:

    让系统不要去处理错误了,而完全由我们(开发者)来对错误进行处理:显示和记录。

     

    做法,其实非常简单,就2步:

     

    第一步:

    设定要用于处理错误的函数名!

    set_error_handler(“f1”);

    第二步:

    去定义该函数!

    function f1(){

    //这里可以任意写代码:自然正常是去显示错误报告,和记录错误日志。

    }

     

  • 相关阅读:
    Parameter Binding in ASP.NET Web API
    Which HTTP methods match up to which CRUD methods?
    ErrorHandling in asp.net web api
    HttpStatusCode
    Autofac Getting Started(默认的构造函数注入)
    Autofac Controlling Scope and Lifetime
    luvit 被忽视的lua 高性能框架(仿nodejs)
    undefined与null的区别
    VsCode中使用Emmet神器快速编写HTML代码
    字符串匹配---KMP算法
  • 原文地址:https://www.cnblogs.com/liqiantu/p/5833642.html
Copyright © 2011-2022 走看看