PHP - 将特定的 $variable 设置为 NULL

Posted

技术标签:

【中文标题】PHP - 将特定的 $variable 设置为 NULL【英文标题】:PHP - Setting a specific $variable to NULL 【发布时间】:2014-06-14 13:16:09 【问题描述】:

所以如果我在 php 中有这段代码:

$class_name;

我想把它放在我的标记中:

...
<div class="wrap <?= $class_name ?>"><!-- Content Here --></div>
...

在这种情况下,我应该如何将变量声明为 NULL?以下哪一项最好:

$class_name;
$class_name = "";
$class_name = NULL;

编辑: 我在外部 html 文件中使用上面的 HTML 代码作为我的 2 个 PHP 文件的模板(我使用 require)。 所以在第一个 php 文件中 div.wrap 应该只有 class="wrap" 而在另一个文件中它有 class="wrap red"

【问题讨论】:

为什么$class_name; 会做任何事?我没有看到您在任何地方测试$class_name 的值,那么$class_name = NULL; 有什么问题?您使用的是isset()if ($class_name) 还是什么?这就是你要求做的。没有上下文,不清楚你的“最佳”标准是什么,投票结束。 如果可能的话,你真的应该避免声明空变量。当然,有时您必须处理空变量-数据库值,将来连接的空字符串等。在这些情况下,请选择有意义的...在您的具体示例中,我什至不会创建变量。使用测试看看是否设置为isset() 【参考方案1】:

使用空字符串:

$class_name = "";

如果您打算在字符串上下文中定期使用它。使用empty() 进行测试。

以下的东西被认为是空的:

"" (一个空字符串) 0 (0为整数) 0.0 (0 作为浮点数) "0" (0 作为字符串) 空 错误 array() (一个空数组) $var; (声明的变量,但没有值)

您的很多决定取决于所需的精度水平。例如,在您的更新中,class="wrap" 之后没有尾随空格,但class="wrap red" 之间有一个空格。如果您不介意尾随空格,并且您确信您的变量将始终是一个字符串,即使它是一个空字符串,那么您可以很好地使用您的原始实现,并且当变量为空时,您将获取class="wrap "

我倾向于认为总是尽可能精确是件好事。因此,当您不连接字符串时,我会在那里检查以防止尾随空格..

...
<div class="wrap<?= empty($class_name) ? '' : " $class_name" ?>"><!-- Content Here --></div>
...

【讨论】:

is_empty 不是一个真正的函数,如果你的意思是 empty 小心 (string) "0" 测试为“空”,因为它可能不希望:codepad.org/a6TNnwx7 我已经编辑了我的问题。如果这是正确的答案,我会接受。

以上是关于PHP - 将特定的 $variable 设置为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

使用 $variable 作为索引取消设置 PHP SIMpleXML 节点

Clear-Variable 和将变量设置为 NULL 之间的区别

如何将特定的 json 响应对象设置为 js var - Cloudinary

Rails 将@variable 从一个显示页面传递到另一个显示页面

将 SQL 查询的结果存储在 PHP $variable 中

R语言使用Hmisc包的label函数为dataframe中的特定变量(数据列)添加变量标签(variable labels)