iT邦幫忙

0

(已解決)php 檢查有無變數,及是否為空

php

(不小心發了兩次,內容同:https://ithelp.ithome.com.tw/questions/10187886

我想要檢查$abc這個變數,

如果有$abc,且有值,回傳:yes
如果有$abc,且沒有值,回傳:no
如果沒有$abc,回傳:error

我的程式碼如下:

if(!empty($abc)){
			echo "yes"."\n";
		}
		elseif($abc==""){
			echo "no"."\n";
		}
		else{
			echo "error";
		}

前兩個條件可以正常執行,但最後一個else條件無法正常執行,
請問我應該如何檢查有沒有$abc,且在三個條件下都可正常執行呢?謝謝
/images/emoticon/emoticon41.gif

q00153 iT邦新手 3 級 ‧ 2017-12-21 10:24:47 檢舉
如果是簡單的判斷,通常我會用三元運算子,供您參考
<?php
$abc = 0;
echo (!isset($abc)? "error" : (empty($abc) && $abc!=0? "no" : "yes"));
小斑 iT邦新手 3 級 ‧ 2017-12-21 10:29:05 檢舉
謝謝~~~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
r567tw
iT邦研究生 5 級 ‧ 2017-12-21 09:58:01
最佳解答

你用了"!empty($abc)" 這個條件,基本上就預設 $abc 這個變數就是"存在"的!
所以我的建議可以用 isset 來判斷$abc 這個變數
程式碼如果是我的話應該會這麼寫

<?php
    if (isset($abc))
    {
        if(!empty($abc))
        {
			echo "yes"."\n";
		}
		else
        {
			echo "no"."\n";
		}
    }
    else
    {
        echo "error";
    }
?>

可以參考看看以下文章
1.http://php.net/manual/en/function.empty.php
2.http://php.net/manual/en/function.isset.php
3.isset v.s empty

小斑 iT邦新手 3 級 ‧ 2017-12-21 10:28:07 檢舉

學到寶貴的知識,謝謝,順利解決了

我要發表回答

立即登入回答