如果字段为空,则为Echo占位符

时间:2011-03-16 18:25:50

标签: php ternary-operator

我有一个输入,我想在其中放置一个占位符文本,但只有在它的相应值是一个空字符串时。应该在文本框中输入的值是从PHP数组中回显的,但如果此值为空,则应该回显占位符。目前,我已经有了这段代码:

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

sponsorData()只是从数组中获取内容;它的唯一论点是关键。这里重要的是它返回astring。

这段代码给出了奇怪的行为;我收到Hello worldAddress Line 1之类的内容,其中Hello world是用户输入的文字,Address Line 1显然是占位符。奇怪的是,占位符在提交时存储到数组中。

我的问题是:有人可以对我的三元运算符进行更正,或者,如果这不起作用,请告诉我进行内联if语句(blegh)?

由于

4 个答案:

答案 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'); ?>