【问题标题】:How do I convert a string to a number in PHP?如何在 PHP 中将字符串转换为数字?
【发布时间】:2012-01-21 17:07:33
【问题描述】:

我想将'3''2.34''0.234343' 等这些类型的值转换为数字。在 JavaScript 中我们可以使用Number(),但是在 PHP 中有没有类似的方法可用?

Input             Output
'2'               2
'2.34'            2.34
'0.3454545'       0.3454545

【问题讨论】:

  • 读者注意:这个问题没有真正的答案:(
  • @MatthieuNapoli 答案是 Php 通常会为您解决问题 - 这是动态类型系统的优势之一。
  • 带有所有不确定性和“通常”的链条。
  • 我想我在 5 年前的意思是没有单个函数接受字符串并返回正确的intfloat(你通常不'在给出int 时不想要float)。
  • @MatthieuNapoli 我很高兴你澄清了你的意思,即有不止一种方法可以给猫剥皮,而不是没有办法做到这一点。例如,强制转换在数据库操作中非常重要。例如,在参数化的 PDO 查询中,解析器有时会很难意识到它是数字而不是字符串,然后您最终会在整数字段中得到 0,因为您没有将字符串转换为 int在参数步骤中。

标签: php casting type-conversion


【解决方案1】:

现在我们正处于一个严格/强类型在 PHP 中具有更大重要性的时代,我使用json_decode

$num = json_decode('123');

var_dump($num); // outputs int(123)

$num = json_decode('123.45');

var_dump($num); // outputs float(123.45)

【讨论】:

    【解决方案2】:

    在一次编程面试中,我收到了一个问题“假设您正在编写用于将整数转换为 PHP 中的字符串的内置函数,您将如何编写该函数”。这是一个解决方案。

    $nums = ["0","1","2","3","4","5","6","7","8","9"];
    $int = 15939; 
    $string = ""; 
    while ($int) { 
        $string .= $nums[$int % 10]; 
        $int = (int)($int / 10); 
    } 
    $result = strrev($string);
    

    【讨论】:

    • 感谢您尝试为问答做出贡献。但是,对不起,不是问题中要问的问题。您的代码将整数转换为字符串。问题是关于将字符串转换为整数。问题也不在于如何编写代码来完成使用语言的内置功能已经可以完成的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2015-08-17
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多