使用未分配的变量是不好的做法

时间:2018-05-01 18:55:10

标签: php

在我的代码中,我使用php变量来显示错误,例如 <span class="error"><?php echo $emailError; ?></span>

我只在填充错误时定义变量,所以现在XAMPP显示此错误 Notice: Undefined variable: emailError

它只是一个通知,所以在部署代码时我会禁用通知,或者我可以在之前定义所有内容以使其消失。

$emailError = "";
$usernameError = "";
$firstnameError = "";
$lastnameError = "";
$languageError = "";
$passwordError = "";

$username = "";
$firstname = "";
$lastname = "";
$email = "";

但我觉得在我的代码中看到类似的东西很奇怪,所以我的问题是。仅在需要时分配变量,但总是尝试显示它们是不好的做法吗?

2 个答案:

答案 0 :(得分:5)

是的,这是一种不好的做法。如您所示,将其初始化为空字符串是最佳解决方案。或者,你可以像这样使用null coalescing operator

<?php echo $emailError ?? ''; ?>

虽然每次你不确定它的定义时你都需要这样做,所以最好像你一样初始化它。

正如@Jeff所指出的那样,如果没有错误,你可能根本不想拥有跨度,在这种情况下你应该做这样的事情:

<?php if ( ! empty($emailError) ) { ?>
    <span class="error"><?php echo $emailError; ?></span>
<?php } ?>

答案 1 :(得分:1)

这被认为是不好的做法,因为它增加了错误的机会。但是,我一直使用未声明的变量,因为它使代码更短,如果你习惯了它,就没有问题。

当然,您的php设置需要设置为警告您(不)关于未声明的变量。您可以使用error_reporting(...)在php本身(在旅途中)执行此操作。

最后,这取决于你。如果您是初学者,我建议您初始化所有变量并享受E_STRICT警告的祝福,以便更轻松地调试代码。因为你不会是第一个寻找三个小时的人$place = $p1ace / 2;不起作用。