Php:关于回显null变量

cod*_*ser 0 php echo

我目前正在使用Murach学习php(该书于2010年出版).其中一个练习有这些陈述:

<label>Investment Amount:</label> <input type="text" name="investment"
value="<?php echo $investment; ?>"/><br />
<label>Yearly Interest Rate:</label> <input type="text" name="interest_rate"
value="<?php echo $interest_rate; ?>"/><br />
<label>Number of Years:</label> <input type="text" name="years"
value="<?php echo $years; ?>"/><br />
Run Code Online (Sandbox Code Playgroud)

整个要点是上面的值属性与echo语句具有的变量最初没有被赋值任何值,因此根据本书,文本框应该是空的.但是稍后在练习中,将再次调用同一页面,变量现在将具有值,因此它们将打印在文本框中.这是本书的解释:

这些echo语句显示包含用户先前在表单中输入的数据的变量.但是,第一次显示此页面时,这些变量将不包含数据,因此文本框将为空.

但是,在第一次运行程序时,文本框实际上不是空的:

第一次看这本书时,这些文本框应该是空的

自从5年前出版这本书以来,我猜他们当时工作但现在没有,或者代码本身是错误的.任何人都可以告诉我这是否只是过时的代码或者它真的打破了吗?我如何修复它以使用null变量获得空文本框的预期效果?

谢谢!

swi*_*fty 5

您应该检查它们是否已定义.

<?php echo (isset($years)) ? $years : ''; ?>
Run Code Online (Sandbox Code Playgroud)

此外,如果您关闭php.ini中的display_errors,这将不会发生,但这将是一个不明智的解决方案