zoukankan      html  css  js  c++  java
  • PHP三种终止脚本执行:return,die,exit

    1、return

    首先,return是语言结构而不是函数。
    如果一个函数中包含return 语句,当调用此函数时,函数的执行只会进行到return这一步,return之后的语句都不会执行,并将return的参数作为函数的值返回。
    如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值,相应的在主脚本文件中定义一个变量进行返回值的接收。
    如果在主脚本文件中调用 return,则脚本中止运行。
    1)注意既然 return 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担。
    2)如果没有提供参数,则一定不能用括号,此时返回 NULL。如果调用 return 时加上了括号却又没有参数会导致解析错误。

    2、exit()

    输出一个消息并且退出当前脚本。
    void exit ([ string $status ] )
    void exit ( int $status )
    如果 status 是一个字符串,在退出之前该函数会打印 status 。
    如果 status 是一个 integer,该值会作为退出状态码,并且不会被打印输出。 退出状态码应该在范围0至254,不应使用被PHP保留的退出状态码255。 状态码0用于成功中止程序。
    Note: PHP >= 4.2.0 当 status 是一个 integer,不会打印输出。

    3、die()

    关于die()的使用,官方文档给的是结构与die()一致。

    4、三者比较

    (1)die与exit 
    手册上标明 "die — Equivalent to exit().This language construct is equivalent to exit().”。
    但在实际代码过程中可以存在一定的选择差别,例如这样:涉及到提前终止程序/脚本执行的情况,使用exit();当程序出错,为了停止执行并显示提示信息时,使用die()。
    (2)return与exit(或die) 
    return是结束当前的函数/文件/脚本/其他的执行,并将信息返回给调用他的其他 函数/文件/脚本/其他 。也就是说,执行到return后,程序并未完全结束,只是携带了有效的信息返回到调用他的上一级(这句话不严谨,如果return是在主脚本文件中,则该脚本也会停止执行),如果return有参数,还需要有变量接收返回值。 但是exit(或die)则不同,他是使当前执行停止到这里,并且不再进行下去。如果有参数,会直接打印出来(只针对字符串)。

    5、代码实例比较

    (1)return

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      return;
    5.  
      echo "C";
    6.  
      }
    7.  
      a();

    输出:A

    主脚本文件中使用return,之后的代码不会再执行了。

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      $e=b();
    5.  
      echo $e;
    6.  
      echo "C";
    7.  
      }
    8.  
       
    9.  
      function b(){
    10.  
      echo "B";
    11.  
      return "E";
    12.  
      echo "D";
    13.  
      }
    14.  
      a();

    输出  ABEC

    函数中使用return,return之后的代码不会再执行,return的参数作为返回值返回给函数调用的地方,并用一个变量接收。

    (2)exit

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      b();
    5.  
      echo "C";
    6.  
      }
    7.  
       
    8.  
      function b(){
    9.  
      echo "B";
    10.  
      exit("E");
    11.  
      echo "D";
    12.  
      }
    13.  
      a();

    输出 :ABE

    对于函数中的字符串参数会直接打印。

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      b();
    5.  
      echo "C";
    6.  
      }
    7.  
       
    8.  
      function b(){
    9.  
      echo "B";
    10.  
      exit(123);
    11.  
      echo "D";
    12.  
      }
    13.  
      a();

    输出:AB

    对于int参数不会打印

    (3)die

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      b();
    5.  
      echo "C";
    6.  
      }
    7.  
       
    8.  
      function b(){
    9.  
      echo "B";
    10.  
      die("E");
    11.  
      echo "D";
    12.  
      }
    13.  
      a();

    输出:ABE

    对于字符串参数会直接打印出来

    1.  
      <?php
    2.  
      function a(){
    3.  
      echo "A";
    4.  
      b();
    5.  
      echo "C";
    6.  
      }
    7.  
       
    8.  
      function b(){
    9.  
      echo "B";
    10.  
      die(123);
    11.  
      echo "D";
    12.  
      }
    13.  
      a();

    输出:AB

    对于int类型的参数不会打印。

  • 相关阅读:
    HTML DOM 12 表格排序
    HTML DOM 10 常用场景
    HTML DOM 10 插入节点
    HTML DOM 09 替换节点
    HTML DOM 08 删除节点
    HTML DOM 07 创建节点
    022 注释
    024 数字类型
    005 基于面向对象设计一个简单的游戏
    021 花式赋值
  • 原文地址:https://www.cnblogs.com/gzpu/p/13736420.html
Copyright © 2011-2022 走看看