本文用于記載個(gè)人在開發(fā)中遇到的坑
js對json 對象數(shù)字鍵值自動排序,直接貼代碼
<?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"}
控制臺打印結(jié)果如下
{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) {
}
//循環(huán)結(jié)束后 $v=&$arr[2];
var_dump($arr);
foreach ($arr as $v) {
}
var_dump($arr);
//輸出結(jié)果如下
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重新找個(gè)變量
}
foreach($arr as &$v){// 方法3 指針重置
}
浮點(diǎn)精確問題
這個(gè)浮點(diǎn)數(shù)精確問題存在于編程語言菊霜,原因是因?yàn)?有窮的小數(shù), 在計(jì)算機(jī)的二進(jìn)制表示里卻是無窮的 跳轉(zhuǎn)到鳥哥博客
使用bc函數(shù)進(jìn)行操作
bcadd: 將二個(gè)高精確度數(shù)字相加济赎。
bccomp: 比較二個(gè)高精確度數(shù)字司训。
bcdiv: 將二個(gè)高精確度數(shù)字相除。
bcmod: 取得高精確度數(shù)字的余數(shù)壳猜。
bcmul: 將二個(gè)高精確度數(shù)字相乘统扳。
bcpow: 求一高精確度數(shù)字次方值。
bcscale: 配置程序中所有 BC 函數(shù)庫的默認(rèn)小數(shù)點(diǎn)位數(shù)啥辨。
bcsqrt: 求一高精確度數(shù)字的平方根盯腌。
bcsub: 將二個(gè)高精確度數(shù)字相減。