2016-08-02 85 views
-2

有什麼區別,哪個更好?如何在PHP中正確使用isset函數?

這一個:

if(isset($_POST['name'])){ 

} 

或者這一個:

$name = $_POST['name']; 
if(isset($name)){ 

} 

我想知道,如果有兩個代碼之間的差異,這是更有效地使用。先謝謝你!

+0

第一個是正確的,後者將導致一個錯誤,如果它不是POST陣列 – RamRaider

+0

定義謝謝@RamRaider。現在我明白了。非常感謝。 – Jjjjjjjjjj

回答

3

嗨第一個是正確的

if(isset($_POST['name'])){ 

} 

這將檢查$_POST['name']設置與否。

$name = $_POST['name']; 
if(isset($name)){ 

} 

這將檢查$name設置與否。如果因爲$_POST['name']是否具有價值或者您沒有聲明$name而進入內部。所以這會給出錯誤的結果

+0

非常感謝! – Jjjjjjjjjj

+0

@Jjjjjjjjjj歡迎:) – user1234

+1

@Jjjjjjjjjj如果一個答案解決了你的問題,不要忘記upvote並選擇它。 – BeetleJuice

0

這兩個代碼會做同樣的事情。他們都會檢查是否設置了變量。

在這兩種情況下,您將檢查是否設置了$_POST['name']。如果你正在尋找效率,你應該使用第一個,因爲創建新的變量和處理數據將始終使用更多的資源。

+0

不,他們不會,如果變量未定義,後者將返回一個錯誤。 – 2016-08-02 05:18:38

+0

當然,但這不是他的問題的重點。他想知道這兩個條件之間有什麼區別,哪一個更有效。實際上,是的,他們也會這樣做:檢查是否設置了$ _POST ['name']。 – tomfl

+0

你顯然有一個不同於宇宙其他部分的「相同」的定義。 – 2016-08-02 05:34:51

2

更好:

$name = isset($_POST['name']) ? $_POST['name'] : 'empty';