2011-03-16 148 views
1

我有一個輸入,我想要放置一個佔位符文本,但僅當它的相應值是一個空字符串。應該在文本框中顯示的值將從PHP數組中回顯,但是如果此值爲空,則應該回顯佔位符。目前,我有這樣的代碼:Echo佔位符,如果字段爲空

 
<?php echo sponsorData('address0') == '' ? 'Address Line 1' : 'Other'; ?> 

sponsorData()只是得到的東西從一個數組;這只是爭論的關鍵。這裏重要的是它返回astring。

此代碼給出奇怪的行爲;我得到像Hello worldAddress Line 1這樣的東西,其中Hello world是用戶鍵入的文本,而Address Line 1顯然是佔位符。奇怪的是,佔位符在提交時被存儲到數組中。

我的問題是這樣的:有人可以提供我的三元操作符的修正,或者,如果那樣行不通,請告訴我做一個內聯if語句(blegh)?

感謝

回答

1

您正在運行到運算符優先級的問題。試試:

<?php echo (sponsorData('address0') == '' ? 'Address Line 1' : 'Other'); ?> 

(圍繞三元運算符語句放置括號)。

+0

感謝您的解釋!事實證明,我的迴應是,而不是從'sponsorData()'返回字符串... JamWaffles就像「大腦如何工作?」 – Bojangles 2011-03-16 19:13:14

3

試試下面的代碼:

<?php echo ((sponsorData('address0') == '') ? 'Address Line 1' : 'Other'); ?> 

菲利克斯

0

你似乎有這個工作好,我不認爲錯誤在那裏。這裏是我會怎麼做:

$address0 = sponsorData('address0'); 

$address0 = !empty($address0) ? $address0 : 'placeholder'; 
0

你必須要考慮的是,sponsorData('address0')可能有空格,這樣你就可以添加trim功能,像這樣:

<?php echo ((trim(sponsorData('address0')) == '') ? 'Address Line 1' : 'Other'); ?>