【问题标题】:Converting LONG to Int adds extra 0将 LONG 转换为 Int 会增加额外的 0
【发布时间】:2016-07-24 13:53:41
【问题描述】:

我确实有与这个主题非常相似的问题:Proper way of converting string to long int in PHP

不幸的是,解决方案对我不起作用。

我的情况如下:

我确实有带有 meta_key 的 Wordpress 数据库,其值为 700(在 LONGTEXT 中)。我想将此数字设为整数。

但是当我使用intval($meta_value) 甚至(float) $meta_value 时,它会在末尾添加额外的零并返回7000 :(

有人可以帮忙吗?

编辑:添加截图

这是数据库中数据的图片

这里是加载这个值并转换它的代码

但该网站仍在返回7000

这是原始代码:

$meta_value = the_author_meta('pocet_bodu', $user_id);
                                    echo $meta_value;

这会返回正确的 700,但它不是数字,不能用于数学运算。一旦我尝试将其转换为整数或浮点数,数字就是 7000。

【问题讨论】:

  • 我从未听说过将 long 转换为 int 会导致乘以 10。您能在这里给我们展示一些实际数据吗?
  • 如果你这样投怎么办:(int) $meta_value
  • imo,我会:调试:var_dump($meta_value, bin2hex($meta_value), strlen($meta_value), intval($meta_value), (float) $meta_value, __FILE__.__LINE__)); 为什么?看看实际数据到底是什么,而不仅仅是可打印的字符。此外,它可以快速完成并且很容易看到正在发生的事情。
  • 好的,7000从哪里来?显然不是来自 $meta_value?
  • 将您的代码发布为纯文本,而不是图像。

标签: php sql wordpress integer longtext


【解决方案1】:

这是一个有趣的问题。请将the_author_meta() 更改为get_the_author_meta()

前一个函数将回显“700”(没有返回值),然后你在那个非返回值上额外echo (int)(如果我没记错的话,实际上是(int)false,这是0)。有你的 7000。

【讨论】:

    猜你喜欢
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多