我应该结束我的PHP脚本退出或退出;?

问题描述:

今天我有一个奇怪的问题。
我应该结束我的PHP脚本退出或退出;哪个是正确的?我应该结束我的PHP脚本退出或退出;?

无;

enter image description here

随着;

enter image description here

感谢。

+0

用“;”。像在PHP中的所有内容 – Skayo

+0

如果有什么存在,你应该从脚本的末尾删除'?>'。你为什么要退出; - 无论如何?什么'退出'解决你的情况? –

exitexit;exit()exit();是完全一样的,但事实是,你应该结束你与退出脚本(一个很好的做法)电话,这只是不好的做法(但它的工作原理)。

编辑

澄清,为什么我说这是“不好的做法”,这不是关于“退出”本身的功能,这是确定中断脚本执行,如果有什么不好的事情发生,但“一些概念坏“真的很广。通常,即使发生了一些不需要的情况,正常的执行流程也应该到达文件的末尾。就在考虑这个例子:

...some init stuff... 
if (!user_is_authenticated) { 
    ...print some nasty message... 
    exit(); 
} 
...continue with normal stuff... 

一个更好的办法是:

...some init stuff... 
if (user_is_authenticated) { 
    ...continue with normal stuff... 
} 
else { 
    ...print some nasty message... 
} 

有什么区别?不同之处在于,在第二个版本中,您不需要使用exit(),这意味着如果有一天您需要在“正常”和“不需要”的执行流程之后执行某些操作,则可以将其添加到文件。

这或多或少为什么你不应该使用除了在功能的结束函数体“回归” ..同样的论点

+0

你能解释为什么这是不好的做法? – andrewsi

+0

当然,检查更新的答案 – Johnny

这是百达使用semicolon

<?php 

//exit program normally 
exit; 
exit(); 
exit(0); 

//exit with an error code 
exit(1); 
exit(0376); //octal 

?> 
+0

当我的朋友告诉我时,我感到困惑,我应该使用退出而不是退出; 。 感谢: - D –

+0

退出不是一个功能。这是一种语言结构。 – andrewsi

+0

谢谢@andrewsi –

像约翰尼说,所有的四种形式“退出”声明的工作。 exitexit()都适用,如果没有语句后跟这两种语言结构中的任何一种。如果有任何其他PHP语句后跟这两个结构,并且分号的目的是结束语句以继续下一个语句,则它不起作用,因此您需要使用exit;exit();以避免语法错误,并且在这种情况下,而不使用分号在编码惯例中被认为是不好的做法。