php中exit()、die()、return()的区别详解

最近在收集有关PHP的面试题,其中有一道题是有关于exit()、die()函数的:

关于exit( )与die( )的说法正确的是:
A、当exit( )函数执行会停止执行下面的脚本,而die()无法做到
B、当die()函数执行会停止执行下面的脚本,而exit( )无法做到
C、使用die()函数的地方也可以使用exit()函数替换
D、die()函数和exit()函数没有区别,做退出程序,都会停止执行下面的脚本
(正确答案在文末)

1.exit()和die()

定义和用法,exit(status) 和die(status)函数都是输出一条消息,并退出当前脚本。两个函数互为别名,都指向同一个函数。

当status为整数时,从4.3版本开始将不再显示出来,如果为字符串类型时,会在中止脚本运行前把字符串内容输出到页面上。

下面看个实例:

$str = "www.baidu.com";
fopen($str,"r") or exit("unable to connect");
// exit函数可以换成die函数,效果一样的。
//运行上面的代码会在页面出现一个报错,同时显示unable to connect字符串
$str = "www.baidu.com";
fopen($str,"r") or exit(96);
// 运行结果:只出现报错,不会显示任何内容。

总结:die和exit函数作用和用法是一样的,不管是在主脚本或者函数体中都是中止脚本运行的,后面的代码都不再执行。

2.return

Note: 注意既然 return 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担。

Note: 如果没有提供参数,则一定不能用括号,此时返回 NULL。如果调用 return 时加上了括号却又没有参数会导致解析错误。

Note: 当用引用返回值时永远不要使用括号,这样行不通。只能通过引用返回变量,而不是语句的结果。如果使用 return (¥a);时其实不是返回一个变量,而是表达式 ($a) 的值(当然,此时该值也正是 $a 的值)。

如果在一个函数中调用 return 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return 也会终止 eval() 语句或者脚本文件的执行。

public test($num)
{
	if($num > 0){
		return "$num大于0";
	}else{
		return;
	}
}

test(100);//返回字符串:100大于0,由于没有任何输出函数,所以此时是没有任何显示内容的。
test(-100);//一样是没有任何显示内容,但是会返回NULL

总结:return不是一个函数,应在用函数体中时,如果有返回值则返回相应内容,否则返回NULL,但不会中止主脚本的运行;如果应用在主脚本中则会中止后续脚本的运行。

试题的答案:C (AB很明显是错误的,D主要是错在退出程序)

最近在收集PHP试题,欢迎在评论区留言分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值