关于PHP var_dump和print_r,exit和die之间的关系

请问在PHP7.0的中这四个两两之间的关系和区别
用PHP的函数token_get_all和token_name分别输出
结果exit()和die()结果均为326,T_EXIT(太长了中间删掉了一些没用的)

print_r(token_get_all('<?php exit();die() ?>'));
print_r(token_name(326));echo '</br>';

[1] => Array
    (
        [0] => 326
        [1] => exit
        [2] => 1
    )
[5] => Array
    (
        [0] => 326
        [1] => die
        [2] => 1
    )

T_EXIT</br>

var_dump和print_r的结果均为319,T_STRING

print_r(token_get_all('<?php print_r();var_dump(); ?>'));
print_r(token_name(319));echo '</br>';

[1] => Array
(
    [0] => 319
    [1] => print_r
    [2] => 1
)
[5] => Array
(
    [0] => 319
    [1] => var_dump
    [2] => 1
)
T_STRING</br>

请问这是否代表exit和die执行结果相同,print_r和var_dump执行结果相同?

阅读 3.8k
1 个回答
print:和echo一样,但速度比echo慢。
print_r:打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
var_export:跟print_r和var_dump类似,但是很少用。
var_dump:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
var_dump和print_r的区别:var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。

die()停止程序运行,输出内容
exit是停止程序运行,不输出内容
return是返回值
die是遇到错误才停止
exit是直接停止,并且不运行后续代码,exit()可以显示内容。
return就是纯粹的返回值了,但是也不会运行后续代码
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。
详细说:

  1. return返回函数值,是关键字; exit 是一个函数。
  2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
  3. return是函数的退出(返回);exit是进程的退出。
  4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。
  5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。
  6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题