2016-11-27 120 views
1

今天我有一個奇怪的問題。
我應該結束我的PHP腳本退出或退出;哪個是正確的?我應該結束我的PHP腳本退出或退出;?

無;

enter image description here

隨着;

enter image description here

感謝。

+0

用「;」。像在PHP中的所有內容 – Skayo

+0

如果有什麼存在,你應該從腳本的末尾刪除'?>'。你爲什麼要退出; - 無論如何?什麼'退出'解決你的情況? –

回答

2

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

2

這是百達使用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 –

0

像約翰尼說,所有的四種形式「退出」聲明的工作。 exitexit()都適用,如果沒有語句後跟這兩種語言結構中的任何一種。如果有任何其他PHP語句後跟這兩個結構,並且分號的目的是結束語句以繼續下一個語句,則它不起作用,因此您需要使用exit;exit();以避免語法錯誤,並且在這種情況下,而不使用分號在編碼慣例中被認爲是不好的做法。