gpt4 book ai didi

在 $value 参数中传递 false 时,WordPress 会出现 get_option 和 update_option 问题

转载 作者:行者123 更新时间:2023-12-04 03:14:04 40 4
gpt4 key购买 nike

我在使用 get_optionupdate_option 时遇到了一个奇怪的问题。我需要向 wp_options 表添加一个选项,所以我使用了这个

update_option('_option_key_index', false),但这绝不会在数据库中添加记录。但是如果我传递 update_option('_option_key_index', 0) 记录就会被添加。

进一步检查核心函数 update_action 会发现一些奇怪的东西。值 false 实际上被视为空字符串,而 true 不是!因此,当我为一个我知道尚不存在的 key 传递 false 时,get_option 返回一个空字符串 ($old_value = get_option( $option ); ),在以下代码段中进行比较时:

if ( $value === $old_value )
return false;

总是返回false,因此没有记录被添加到数据库中!

问题是为什么 WordPress 将 bool 值 false 视为空字符串,而值 true 却不同?

下面是我尝试过的值列表和我得到的结果:

true: works. Value added is 1
1: works. Value added is 1
false: does not work - No record added
0: works - Value added is 0
'true': works. Value added is true (passed as string)
'false': works. Value added is false (passed as string)

最佳答案

当 PHP 将 bool 值转换为字符串时,false 变为 ''(空字符串),而 true 变为 '1'(字符串)。

由于 WordPress 是基于 PHP 的,您可能需要坚持使用 1/0 或 true/false(作为字符串)来区分“ bool 值”。

关于在 $value 参数中传递 false 时,WordPress 会出现 get_option 和 update_option 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558491/

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