美文网首页
php开发中遇到的坑

php开发中遇到的坑

作者: code_nerd | 来源:发表于2017-10-27 10:51 被阅读0次

    本文用于记载个人在开发中遇到的坑

    js对json 对象数字键值自动排序,直接贴代码

    <?php 
    $a = array('2'=>'dsads',1=>'dsds', 'b' => 'dsdsds', 'a'=> '100001');
    echo json_encode($a);
    $str = '<script>console.log ( ' . json_encode($a) . ' )</script>';
    echo $str;
    exit;    
    

    页面输出如下

    {"2":"dsads","1":"dsds","b":"dsdsds","a":"100001"}
    

    控制台打印结果如下

    {1: "dsds", 2: "dsads", b: "dsdsds", a: "100001"}
    

    php的json_decode输出问题

    json_decode('php')=> null// 对非 json 字符串并非返回 null 
    json_decode('0x123')=> 291
    

    php 中foreach

    具体原理可参考 该文章

    <?php
    $arr = [1, 2, 3];
    echo '<pre>';
    foreach ($arr as &$v) {
            
    }
    //循环结束后 $v=&$arr[2];
    var_dump($arr);
    foreach ($arr as $v) {
            
    }
    var_dump($arr);
    //输出结果如下
    array(3) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      &int(3)
    }
    array(3) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      &int(2)
    }
    

    解决方法

     foreach ($arr as &$v) {
            
            }
            var_dump($arr);
            unset($v); //方法1  删除指针
            foreach ($arr as $v1) {//方法2重新找个变量
            
            }
            foreach($arr as &$v){// 方法3 指针重置
            }
    

    浮点精确问题

    这个浮点数精确问题存在于编程语言,原因是因为 有穷的小数, 在计算机的二进制表示里却是无穷的 跳转到鸟哥博客

    使用bc函数进行操作

    bcadd: 将二个高精确度数字相加。
    bccomp: 比较二个高精确度数字。
    bcdiv: 将二个高精确度数字相除。
    bcmod: 取得高精确度数字的余数。
    bcmul: 将二个高精确度数字相乘。
    bcpow: 求一高精确度数字次方值。
    bcscale: 配置程序中所有 BC 函数库的默认小数点位数。
    bcsqrt: 求一高精确度数字的平方根。
    bcsub: 将二个高精确度数字相减。

    相关文章

      网友评论

          本文标题:php开发中遇到的坑

          本文链接:https://www.haomeiwen.com/subject/vmdrpxtx.html