php - PHP中,空值和将字符串设置为 2单引号之间的区别是什么

  显示原文与译文双语对照的内容
119 3

我曾经用空白值设置过这样的东西。

$blankVar = '';

过了几个月后,我决定这样看起来更好,更明确的意图。

$blankVar = null;

这一段时间没有出现问题,但最近使用了一个a 语句,我遇到了问题。将值绑定到null使查询失败,同时将它的绑定到''时。我需要将它绑定到 null,因这里如果满足条件,它将插入空白数据。

2之间的差异是什么?我仍然认为空( 或者至少一个常数) 看起来更好,所以我应该这样做?

define('EMPTY', '');
时间:原作者:0个回答

111 0

Null是PHP中的另一个数据类型,它只有一个值( 空) 。是一种loosly类型的语言,它可能会混淆它处理不同值的方式。

"", 0,"0", False, array(), Null都被认为是PHP中的false 。

然而,Null是一种不同的动物。如果使用Null的主要不兼容is你无法判断它是否为 isset() 。

$x = false;
isset($x) -> true
echo $x ->""
$y = null;
isset($y) -> false
echo $y ->""
//$z is not set
isset($z) -> false
echo $z -> E_NOTICE

所以null是奇怪的,它不遵循 PHP ( 至少有些) 中的标准变量规则。在大多数情况下,它很好。

如果对数据库列有 ,php就没有任何地方了。SQL是一个基于字符串的语言。空的sql必须用 NULL 表示,没有引号。

如果你想要一个空字段,请将它的设置为""

INSERT INTO foo SET bar =""

但是如果你想要一个空字段,将它设置为空

INSERT INTO foo SET bar = NULL

大差异。

但是如果尝试直接插入 PHP NULL,它将向查询中添加零个字符,( 这将给你留下一个空白或者语法错误,具体取决于你是否引用了它) 。

原作者:
...