2011-05-09 135 views
2

假設定義一個空變量?

$test = ''; 

if(empty($test)){ $test = "not found";} 

echo $test; 

上述情況下,答案將是「未找到」

但低於一個即使$test變量是空的,但是結果給什麼。

$test = ' '; 

if(empty($test)){ $test = "not found";} 

echo $test; 

如何在PHP中將這兩個變量都視爲空?

+1

字符串是如果它的長度爲0空。具有單個空格字符的字符串的長度爲1. – Gumbo 2011-05-09 17:27:59

回答

5

在檢查之前修改該值。

檢查,因爲只有empty檢查變量,而不是你在傳遞前值修剪是很重要的

$test = trim(' '); 

if (empty($test)) { /* ... */ } 

echo $test; 
+0

是的,我忘了「修剪」功能......謝謝你 – alwyn 2011-05-09 17:46:53

1

你可以做 if (empty(trim($test))) ...

更正:

$test = trim($test);

if (empty($test)) ...

修剪從字符串的兩側刪除空格。

+0

-1您應該提前嘗試它。 – Gumbo 2011-05-09 17:28:26

+0

-1因爲'empty'只對變量起作用,而不能用於表達式。這種情況在PHP手冊中明確提到它不會*工作。 – 2011-05-09 17:28:42

+0

正確的你是 - 糾正。 – Austin 2011-05-09 17:32:31

0

創建自己的功能測試:。

function my_empty($str) { 
    $str = trim($str); 
    return empty($str); 
} 

那將除了空方法已經提供的內容外,將所有隻包含空格的字符串視爲空。

1

我不知道爲什麼大家都在這裏推薦empty。然後,你可以就這麼走了出來,並使用PHP的布爾環境處理:

if (!trim($test)) { 

但實際檢查是否有任何字符串內容使用:

if (!strlen(trim($test))) {