2009-09-22 65 views
0

我想只寫一個簡單的PHP if語句來檢查自定義字段是否有任何輸入或如果它已被留空。PHP if語句問題時,檢查變量值

當它是空白的時候,如果在自定義字段中設置了某些東西,那麼它應該創建一個裏面帶有標籤的li元素,這意味着不打印任何內容到頁面, 。

這裏是到目前爲止我的代碼:

<ul class="externalLinks"> 
<? $emptycheck = get('linkname',2,1,0); 

if (isset($emptycheck)){ ?> 
    <li><a href="<? echo get('targethref',2,1,0); ?>"><? echo get('linkname',2,1,0);?></a></li> 
<? } else { '' } ?> 

<li><a href="<? echo get('PDFdownload'); ?>">Download a PDF of this project</a></li> 
</ul> 

在這種情況下,自定義字段由WordPress管理(通過撲插件)設置。 我遇到的問題很簡單,如果自定義字段爲空空

<li><a></a></li> 

創建。

get('linkname',2,1,0)顯然返回字段內容(此部分工作)。

任何想法將不勝感激。

感謝, Jannis

+1

如果您打算在不同的服務器上使用此項目,您可能需要更改<?到任何地方(這不是標準的開放標籤)。 – jnylen

回答

5

僅僅因爲一個變量是空的,並不意味着它不是isset()函數。

你想檢查它是否是empty()或不。

$whatever = get('whatever',2,1,0) 
if (! empty($whatever)){ 
//output your stuff 
} 

要清楚:isset()會告訴你變量名是否存在於符號表中。當變量爲空時,empty()將返回true。

根據文檔:

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

  • 「」(空字符串)
  • 0(0作爲整數)
  • 「0」(0作爲字符串)
  • NULL
  • FALSE
  • array()(一個空數組)
  • var $ var; (變量聲明,但沒有一類的值)

編輯:空()是一種特殊的,只有在一個常規的變量進行操作。你不能用empty()來測試表達式(例如函數的返回值)。這在手冊頁上有詳細記錄。

+0

+1 - 我只是用strlen來檢查,我不知道這個函數,因爲我從不需要它。謝謝。 –

+0

謝謝,這個作品完美。 – Jannis

+0

@ gumbo:你是對的。編輯... – timdev

1

你設置$ emptycheck不管,如果返回值是falsy你可能想

if ($emptycheck) { 
} else { 
} 

否則,它會始終爲true。或者如果反過來則用否定運算符(!)翻轉邏輯。