laoyuan
V2EX  ›  PHP

宇宙最智能的语言 PHP,太自动了~

  •  
  •   laoyuan · Apr 24, 2015 · 2620 views
    This topic created in 4099 days ago, the information mentioned may be changed or developed.
    $str = '2,345.67';
    var_dump($str * 100); //int(200)

    我多么希望这个结果是0啊,目测无数屁股要擦。。
    这个坑几年来已经踩了三四回了,记吃不记打-_-!!
    2 replies
    jevonszmx
        1
    jevonszmx  
       Apr 24, 2015
    官方手册没好好看!!

    手册写的非常清楚的呢~~~

    http://php.net/manual/zh/language.types.type-juggling.php


    字符串转换为数值

    当一个字符串被当作一个数值来取值,其结果和类型如下:

    如果该字符串没有包含 '.','e' 或 'E' 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。

    该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。

    ```
    <?php
    $foo = 1 + "10.5"; // $foo is float (11.5)
    $foo = 1 + "-1.3e3"; // $foo is float (-1299)
    $foo = 1 + "bob-1.3e3"; // $foo is integer (1)
    $foo = 1 + "bob3"; // $foo is integer (1)
    $foo = 1 + "10 Small Pigs"; // $foo is integer (11)
    $foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
    $foo = "10.0 pigs " + 1; // $foo is float (11)
    $foo = "10.0 pigs " + 1.0; // $foo is float (11)
    ?>
    ```
    laoyuan
        2
    laoyuan  
    OP
       Apr 24, 2015
    @jevonszmx 唉,看了也记不住
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   984 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:53 · PVG 05:53 · LAX 14:53 · JFK 17:53
    ♥ Do have faith in what you're doing.