详解PHP中的die、exit、return

PHP中,终止脚本运行有三种方式:主脚本程序中使用return、脚本中使用exit()、die(),三者所在的脚本文件他们之后的代码都不会执行。

1. die( ) 和 exit( )

在PHP中,die() 和 exit()的用法和作用是一样的。 

这两个函数可以有参数,如果参数是一个字符串,则该函数会在中止脚本运行前输出字符串。

如果参数是一个整数,这个值被用做退出状态。值的范围在0到254之间。

退出状态255由PHP保留,不会被使用;状态0用于成功地终止程序。

注:PHP版本号大于4.2.0,括号里的值是整数,不会输出该参数。

因为die()和exit()的用法和作用一样,我就拿die()来举例子。

代码示例1:

  在主脚本中:

<?php
header(content-type:text/html;charset=utf-8);
$a = 1;
$b = 9;
echo $a; // 输出 1
die; // 中止脚本运行,下面不在运行
$sum = $a + $b;
echo $sum; // 不被输出
?>

运行结果: 

1

代码示例2:

  在函数中:

<?php
header("content-type:text/html;charset=utf-8");
function A(){
    echo "2"; // 输出 2
    die("error"); // 中止脚本运行,并输出括号里的字符串
}
echo "1"; // 先输出 1
A(); // 调用函数
echo "钱难有"; // 不被输出
?>

运行结果:

1
2
error

解释一下例2:"钱难有"没有被输出呢?

  1. 首先PHP的执行机制是从上到下。
  2. 第一步先声明函数
  3. 第二步执行echo语句输出1
  4. 第三步调用函数A,输出2,执行 die  中止脚本运行 并输出error
  • 小结: die( ) 和 exit( ) 不管是在主脚本或函数里都是中止脚本运行的,后面的代码都不在执行。


2. return

首先return是语言结构,它不是函数。它可以有返回值。

如果在主脚本中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值,相应的在主脚本文件中定义一个变量进行返回值的接收。

如果一个函数中包含return 语句,当调用此函数时,函数的执行只会进行到return这一步,return之后的语句都不会执行,并将return的参数作为函数的值返回。

代码示例1:

  主脚本中:

<?php
header("content-type:text/html;charset=utf-8");
$name = "钱难有";
echo "红军不怕远征难"; // 输出
return; // 中止脚本运行
echo $name; // 不被输出
?>

运行结果:

 红军不怕远征难

代码示例2:

  函数体中:

<?php
header("content-type:text/html;charset=utf-8");
function A(){
    $a = 5; $b = 4; // 定义两个局部变量
    return $a + $b; // 返回 $a+$b 的值,并结束当前脚本
    echo $a; // $a不在被输出
}

$sum = A(); // 调用函数 并用变量接收 return 的返回值
echo $sum; // 输出 $sum
echo "钱难有"; // 输出 "钱难有"
?>

 运行结果:

9
钱难有
  • 小结: 在主脚本中调用 return ,则脚本中止运行。在函数体调用return,如果有返回值则返回,函数里的代码不在执行。而主脚本的代码依然会运行。

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java,`return`语句用于从当前方法返回一个值或者终止方法的执行。下面是`return`语句的所有用法: 1. 返回值 ```java public int add(int a, int b) { return a + b; } ``` 这里的`return`语句返回了方法的执行结果,即`a + b`的值。 2. 空返回 ```java public void hello() { System.out.println("Hello, World!"); return; // 可以省略 } ``` 这里的`return`语句没有返回值,只是用于结束方法的执行。 3. 结束方法的执行 ```java public void exit() { System.out.println("Exiting..."); System.exit(0); System.out.println("This statement will not be executed."); // 这句话不会被执行 } ``` 这里的`return`语句用于结束方法的执行,但是通过调用`System.exit()`方法来终止整个程序的执行。 4. 抛出异常 ```java public int divide(int a, int b) { if (b == 0) { throw new ArithmeticException("Division by zero"); } return a / b; } ``` 这里的`return`语句用于返回`a / b`的值,但是如果`b`为0,则会抛出一个算术异常。 5. 返回数组 ```java public int[] getArray() { int[] arr = {1, 2, 3}; return arr; } ``` 这里的`return`语句返回了一个整数数组。 6. 返回对象 ```java public Person getPerson() { Person p = new Person("Alice", 20); return p; } ``` 这里的`return`语句返回了一个`Person`对象。 需要注意的是,如果方法的返回类型为`void`,则不需要使用`return`语句返回值。另外,如果`return`语句后面没有表达式,则返回一个`null`值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值