我有一个输入,我想在其中放置一个占位符文本,但只有在它的相应值是一个空字符串时。应该在文本框中输入的值是从PHP数组中回显的,但如果此值为空,则应该回显占位符。目前,我已经有了这段代码:
<?php echo sponsorData('address0') == '' ? 'Address Line 1' : 'Other'; ?>
sponsorData()
只是从数组中获取内容;它的唯一论点是关键。这里重要的是它返回astring。
这段代码给出了奇怪的行为;我收到Hello worldAddress Line 1
之类的内容,其中Hello world
是用户输入的文字,Address Line 1
显然是占位符。奇怪的是,占位符在提交时存储到数组中。
我的问题是:有人可以对我的三元运算符进行更正,或者,如果这不起作用,请告诉我进行内联if
语句(blegh)?
由于
答案 0 :(得分:3)
尝试以下代码:
<?php echo ((sponsorData('address0') == '') ? 'Address Line 1' : 'Other'); ?>
费利克斯
答案 1 :(得分:1)
您遇到了运营商优先问题。尝试:
<?php echo (sponsorData('address0') == '' ? 'Address Line 1' : 'Other'); ?>
(在三元运算符语句周围加上括号)。
答案 2 :(得分:0)
你似乎有这个工作正常,我不认为错误就在那里。我将如何做到这一点:
$address0 = sponsorData('address0');
$address0 = !empty($address0) ? $address0 : 'placeholder';
答案 3 :(得分:0)
您必须考虑sponsorData('address0')
可能包含空格,因此您可以添加trim
函数,如下所示:
<?php echo ((trim(sponsorData('address0')) == '') ? 'Address Line 1' : 'Other'); ?>