2012-06-26 28 views
31

可能重複:
Check if a variable is empty檢查「不爲空」或空字符串的PHP語法是什麼?

簡單的PHP問題:

我有這個stement:

if (isset($_POST["password"]) && ($_POST["password"]=="$password")) { 
...//IF PASSWORD IS CORRECT STUFF WILL HAPPEN HERE 
} 

某處這種說法我使用下面的行以上我的JavaScript設置用戶名爲無論是在我的JavaScript和我的PHP變量:

uservariable = <?php $user = $_POST['user']; print ("\"" . $user . "\"")?>; 

我想要做的就是添加一個條件,以確保$ USER不爲空或空字符串(它不必是任何特定值,我只是不希望它是空的。什麼是正確的方法來做到這一點?

我知道這是一個門檻問題,但我沒有使用PHP的經驗。請指教,謝謝!

+0

請問的問題,你在HTTP被提示之前使用搜索功能:


意識到$用戶〜= $ _ POST [ '用戶'](感謝馬特)後/stackoverflow.com/questions/ask-advice。這已被問及答覆之前:http://stackoverflow.com/search?q=check+for+empty+value+php – Gordon

回答

52

Null OR an empty string?

if (!empty($user)) {} 

使用empty()。 /:

var uservariable='<?php 
    echo ((array_key_exists('user',$_POST)) || (!empty($_POST['user']))) ? $_POST['user'] : 'Empty Username Input'; 
?>'; 
+0

看起來我讀的問題不同於其他人......我們談論的是$ user,而不是$ _POST ['user'],對吧? –

+1

'$ user'被分配給代碼中的'$ _POST ['user']'。在分配前不妨驗證一下,但真的沒關係 –

+0

嗯,究竟有什麼不同?如果我做錯了,請告訴我! –

12

使用empty()。它檢查兩個空字符串和null。

if (!empty($_POST['user'])) { 
    // do stuff 
} 

從手冊:

下面的事情被認爲是空的:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string)  
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 
+0

closevote請。 – Gordon

+0

請注意,如果'用戶'未在$ _POST上設置,您將收到警告。它仍然可以工作,但它會很快填滿你的日誌。我通常減輕這個! '如果((array_key_exists( '用戶',$ _ POST))||(空($ _ POST [ '用戶']))' –

+0

所有這三個是給我的錯誤信息: –

0

PHP's strlen() function。它會返回字符串的長度

if (isset($_POST['user']) && strlen($_POST['user']) > 0) 
相關問題