这有效:
<input type="text" name="foo" value="<?php echo isset($_POST['foo']) ? $_POST['foo'] : '' ?>"/>
这不会:
echo('<input type="text" name="foo" value="'.isset($_POST['foo']) ? $_POST['foo'] : ''.'"/>');
注意:第 15 行 /srv/www/form.php 中未定义索引:foo
谢谢你的帮助。
PHP的运算符优先级规则让它评估你的第二个例子,如下所示:
echo(
('<input type="text" name="foo" value="'.isset($_POST['foo']))
? $_POST['foo']
: (''.'"/>')
);
这在很多方面都没有多大意义。并且由于结果isset()
基本上被忽略了,这总是最终只是试图打印$_POST['foo']
。当然,当未设置时,这会导致通知。
在实际三元表达式周围添加括号。 IE。
(isset($_POST['foo']) ? $_POST['foo'] : '')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)