1:整形:echo 027==??23?為什麼因為027是八進位制數
2: 0.3-0.2==0.1嗎?不等於 為什麼?
因為:浮點數的精度有限。儘管取決於系統,php 通常使用 ieee 754 雙精度格式,則由於取整而導致的最大相對誤差為 1.11e-16。非基本數**算可能會給出更大誤差,並且要考慮到進行復合運算時的誤差傳遞。
此外,以十進位制能夠精確表示的有理數如 0.1 或 0.7,無論有多少尾數都不能被內部所使用的二進位制精確表示,因此不能在不丟失一點點精度的情況下轉換為二進位制的格式。這就會造成混亂的結果:例如,
floor
((0.1+0.7)*10) 通常會返回 7 而不是預期中的 8,因為該結果內部的表示其實是類似7.9999999999999991118...。
所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。如果確實需要更高的精度,應該使用任意精度數學函式或者 gmp 函式。
3:單雙引號的區別?
php單引號及雙引號均可以修飾字串型別的資料,如果修飾的字串中含有變數(例$name);
最大的區別是:
雙引號會替換變數的值,而單引號會把它當做字串輸出。
例如:<?php
$name="string";
echo " 字串" . '$name';
echo "字串" . "$name";
?>
結果:字串$name
字串string
4:在php 中echo 布林型的時候 echo true===>1;echo false===>"" 空字串
布林型雖然只有兩種但是運算很重要例如:
邏輯與 邏輯或 邏輯反 異或
3中輸出(echo,print_r,var_dump())的區別 echo 輸出變數(整形,,浮點型,字串型,都是標量型別)
print_r ----->物件,陣列
var_dump() 不僅可以列印二維陣列和多維陣列 不僅可以列印陣列本身,還可以列印型別
5:null型 *****==>空 只有乙個值,即null,空,四大皆空
有銀行卡 但是裡面是0元 整型值
無銀行卡 這種情況,值是多少?值就沒有,沒有就是null
乙個變數什麼時候為null
1:給乙個變數,賦值為null
2:某個變數,被unset掉: 銷毀變數
3:只宣告變數,不賦值
JS變數的一些問題
es5變數提公升 變數提公升 es5 變數提公升 宣告 declare var a function sum 預設值undefined 定義 defined a 12 就是賦值操作 var 只宣告未定義 function 的宣告和賦值,定義 變數提公升只發生當前作用域 開始載入的時候只對全域性作用域...
環境變數的一些問題
我們在安裝交叉編譯時往往需要新增環境變數 有兩個地方可以新增 詳細過程見下 最好不要在profile下新增,否則出錯系統就會癱瘓,登陸不進去,指令也無效 那如果我們不小心剛好就遇到這種情況怎麼辦,別問我自己是怎麼辦,看下面 1登入不了 輸入密碼後一直登入不了 使用快捷鍵ctrl alt f1到f6分...
關於型別轉換的一些問題
今天在寫 時使用乙個long long型別的變數儲存乙個數的累加,最後在輸入的時候發生了溢位。可能發生溢位的可能有幾個地方 1.其實變數並沒有溢位,只是在輸出時沒有使用正確的方式,例如long long型別 在使用printf時 識別符號應該使用 lld,unsigned longlong 應該使用...