當我填寫的變量,我可以做這樣的事情?:我可以使用die來填充變量嗎?
$type = isset($_GET['type']) ? $_GET['type'] : die();
通過這樣做,如果「類型」是不是在要求,我的功能將退出。這是使用die()的正確方法嗎?
當我填寫的變量,我可以做這樣的事情?:我可以使用die來填充變量嗎?
$type = isset($_GET['type']) ? $_GET['type'] : die();
通過這樣做,如果「類型」是不是在要求,我的功能將退出。這是使用die()的正確方法嗎?
如果您只想讓您的功能退出,請使用return
。然而,這不是一種表達,所以你需要將其更改爲if
聲明:
if(!isset($_GET['type'])) {
return;
}
$type = $_GET['type'];
如果你想你的整個頁面停止執行,那麼是的,這是正確的(但我仍然使用爲清楚起見,if
)。
是和否。是的,因爲你所做的技術上是正確的,並且如果變量不存在,將會終止腳本,但是如果你想要測試代碼,則不應該使用die
構造。 PHP是一種面向對象的語言(從版本5開始),它是一個非常強大的語言。它支持使用您可能想要在此處使用的高級錯誤處理的例外。
的模具()函數將結束整個PHP程序,而不是退出您所在的功能除此之外,代碼爲依託PHP是一種愚蠢的事實。 die()嚴格應該是一個無效函數,但你的電話取決於它返回東西 - 它做,但不應該。
你真正想要的是一個簡單的如果聲明:
if(! isset($_GET['type']))
return;
$type = $_GET['type'];
的另一件事是,如果這個代碼是在一個函數,$類型的值將不會被保留,除非它被聲明爲全球。
$type = isset($_GET['type']) ? $_GET['type'] : die();
等同於這個if/else語句:
if (isset($_GET['type']))
$type = $_GET['type'];
else
$type = die();
它的工作原理,因爲die()
將被調用,將停止腳本執行,但是,這不是」這是一個很好的做法。如果沒有這個想法,你可以使用if和else語句,如果$ _GET ['type']不存在,只需調用die()
,如下所示。
if (isset($_GET['type']))
$type = $_GET['type'];
else
die('type not found');
+1三元運算符是_evil_ – Lusitanian 2012-07-15 02:27:51
@大衛沒有辦法,不是邪惡!只是不適合這個目的。三態是用於條件值賦值或返回,而不是複雜的分支或腳本終止。 – 2012-07-15 02:28:13
三元邪惡?垃圾... – Brad 2012-07-15 02:28:33