繁体   English   中英

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

[英]Is using unassigned variables bad practice

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

我仅在有错误要填充时定义变量,因此现在XAMPP显示此错误Notice: Undefined variable: emailError

这只是一个通知,因此在部署代码时我将禁用通知,或者我可以在定义所有内容之前将其删除。

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

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

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

是的,这是一个坏习惯。 最好将其初始化为如所示的空字符串。 或者,您可以使用null合并运算符,如下所示:

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

尽管每次不确定该定义时都需要执行此操作,所以最好像完成操作一样对其进行初始化。

正如@Jeff所指出的,如果没有错误,您可能根本不想要跨度,在这种情况下,您应该执行以下操作:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM