gpt4 book ai didi

php - 在 PHP 中,NULL 和将字符串设置为等于 2 个单引号之间有什么区别

转载 作者:IT王子 更新时间:2023-10-29 01:17:53 28 4
gpt4 key购买 nike

当我想要空白值时,我曾经设置过这样的东西。

$blankVar = '';

几个月后,我觉得这看起来更好,意图也更清晰。

$blankVar = null;

这有一段时间没有出现问题,但最近使用 PDO 准备好的语句时遇到了问题。将值绑定(bind)到 null 会使查询失败,而将其绑定(bind)到 '' 则不会。我需要将它绑定(bind)到null,这样如果满足某个条件,它就会插入空白数据。

两者有什么区别?我仍然认为等于 null(或至少是一个常量)看起来更好,所以我应该这样做吗?

define('EMPTY', '');

最佳答案

Null 只是 PHP 中的另一种数据类型,它只有一个值 (null)。由于 PHP 是一种松散类型的语言,因此它处理不同值的方式可能会令人困惑。

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

然而,Null 是另一种动物。使用 Null 的主要不兼容是您无法判断它是否是 set()。

$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 的 NULL 在那里没有立足之地。您知道,SQL 是一种基于字符串的语言。 SQL 的 NULL 必须用不带引号的 NULL 表示。

所以如果你想要一个 EMPTY 字段,将它设置为 ""

INSERT INTO foo SET bar = ""

但是如果你想要一个NULL字段,就把它设置为NULL

INSERT INTO foo SET bar = NULL

大不同。

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

关于php - 在 PHP 中,NULL 和将字符串设置为等于 2 个单引号之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/624922/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com