php程式設計師可能不了解的程式設計細節

2021-09-29 23:58:44 字數 1760 閱讀 8002

有符號整形 2147483647

無符號整形 4294967295

mysql中的部分型別的值範圍

型別占用位元組

有符號範圍

無符號範圍

tinyint

1-128 到 127

0 到 255

int4

-2147483648 到 2147483647

0到4294967295

bigint

8-9223372036854775808 到9223372036854775807

0到18446744073709551615

這裡的100只是顯示寬度,並不是能儲存100位的數字,

數值的範圍只能在mysql定義的int的範圍.

只要是設定的是int型別,不管是int(1) 還是int(10) 都占用4個位元組.

占用位元組都是固定的.

顯示寬度是什麼可以自行查詢.

當欄位設定為int(2)的時候,也能插入200這個數字.

各種型別的範圍可以檢視文件,

mysql的各種型別的範圍是按照國際sql標準制定的.

和平台有關,整形溢位會自動轉換為浮點型

$n = 33000000000000000000000000000000;

var_dump($n);

var_dump(intval($n));

var_dump(php_int_max);

var_dump(intval(9223372036854775807));

var_dump(intval(9223372036854775808));

var_dump(intval(9223372036854775809));

var_dump(0x123);

var_dump(0.1+0.7);

var_dump(intval((0.1+0.7)*10));

var_dump(intval(0.8*10));

//輸出結果

float(3.3e+31)

int(1517713074423857152)

int(9223372036854775807)

int(9223372036854775807)

int(-9223372036854775808)

int(-9223372036854775808)

int(291)

float(0.8)

int(7)

int(8)

絕不要將未知的分數強制轉換為 integer,這樣有時會導致不可預料的結果。

計算機不會精確的表示小數.只是近似值,

小數從十進位制進製轉換成二進位制失去了精確,只是近似值.

原因是計算機按照ieee 757 行業標準表示浮點數.

這篇別人寫的文章有介紹

0.2+0.4

0.6000000000000001

0.1+0.7

0.7999999999999999

$a = 『car』; // $a is a string

$a[0] = 『b』; // $a is still a string

echo $a; // bar

上面的結果仍然是字串bar

了解計算機原理 ,

各種協議,

各種標準.

完整的閱讀各種語言的手冊,

這些是我們需要做的.是減少程式bug的一大利器.

你們所不了解的程式設計師思維黑洞

如果你也是程式設計師,看看你中了幾條?1.數數會從 0 開始數起 比如,程式設計師吵架的時候會說 我數三下,你再不閉嘴,我就不客氣了!零,一,二!或者,在列清單的時候,編號會從 0 開始寫。為什麼會這樣?因為 0 是陣列的第乙個元素,在經過無數次的越界,無數次的迴圈錯誤後,從 0 開始,這句信條,就...

七個你可能不了解的CSS單位

我們很容易無法擺脫的使用我們所熟悉的css技術,當新的問題出現,這樣會使我們處於不利的地位。隨著web繼續的發展,對新的解決方案的需求也會繼續增大。因此,作為網頁設計師和前端開發人員,我們別無選擇,只有去了解我們的工具集並且熟悉它。這意味著我們還要了解一些特殊的工具 那些不經常使用的,但是當需要它們...

那些你可能不了解的公有雲風險成本

公有雲強調了給企業帶來的種種好處,但是它並不十全十美。企業應該意識到其不可 的成本結構以及其他的一些缺點。公有雲服務給予企業諸多優勢。他們允許靈活和經濟的虛擬機器部署並且可以提高乙個組織的資料備份和工作負載擴充套件能力。但是,公有雲並不是沒有缺點的。在了解公有雲優點之後,即本系列的第一篇文章,在進入...