2011-03-16 152 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'); ?>