php的資料是存在類型的概念的,弱類型指的是變量可以存儲任何類型!一共8種,分别是:
整型、浮點型、布爾型、字元串(标量類型)
數組、對象(符合類型)
null、資源(特殊類型)
分成三大類:
标量類型:指的是一個資料表示一個值,也稱為簡單類型。
複合類型:指的是一個資料表示多個值,也稱為集合類型。
特殊類型:不是正常資料,更傾向一種表示方式。
布爾類型 bool boolean
表示邏輯的真和假,該資料就兩個值 true表示真,false表示假,大小寫不敏感~
1
2
3
4
5
<code><?php</code>
<code>var_dump(true);</code>
<code>var_dump(</code><code>‘false‘</code><code>);</code><code>//使用引号是錯誤的</code>
<code>?></code>
浏覽器顯示為:
boolean true
通常在判斷的時候:關系表達式、或者if()需要的的條件等等,都需要布爾類型
整型 int
integer
表示整型的資料,整型是有範圍的,一個整型隻能占用4個位元組(4*8bit=32bit,32位),位元組是最基本的資料存儲機關,
位,計算機能夠處理的最小單元,0和1
可以用預定義常量php_int_max來得到最大值,
6
7
<code>$evil</code>
<code>= 182323328;</code>
<code>var_dump(</code><code>$evil</code><code>);</code>
<code>echo</code>
<code>‘<hr>‘</code><code>;</code>
<code>$evilxr</code> <code>= php_int_max;</code>

php的整型有正負之分,最高位為符号位,1為負,0為正
負叔也有最小值,-2147483648,最小值的絕對值,要比最大值的絕對值大一!原因在于都是補碼計算機
8
9
10
11
12
13
<code>$evilxr1</code> <code>= -php_int_max;</code><code>//-2147483647</code>
<code>$evixr</code>
<code>=</code><code>$evilxr1</code>
<code>- 1;</code><code>//-2147483648</code>
<code>var_dump(</code><code>$evilxr1</code><code>);</code>
<code>var_dump(</code><code>$evixr</code><code>-1)</code>
整型資料的表示
整型支援三種表示方式,采用進制來區分,
php支援的表示方式:十進制、八進制、十六進制。
php提供了一些函數,可用于進制轉換:
10 dec
2 bin
8 oct
16 hex
decbin();
hexdec();
如——>hexdec()十六轉十:
<code>hexdec(</code><code>‘ff‘</code><code>);</code>
浮點數 float
php中沒有區分單精度和雙精度,因為隻實作了雙精度,浮點型就是雙精度!
浮點數,小數可以表示!
<code>$evilxr</code>
<code>= 40.4;</code>
<code>var_dump(</code><code>$evilxr</code><code>);</code>
整型不能表示的數也是浮點數:
當數很大時,可以用科學計數法:
<code>$kiss</code>
<code>= 2e8;</code>
<code>var_dump(</code><code>$kiss</code><code>);</code>
<code>$kissme</code>
<code>= 1e-4;</code><code>//不能寫成‘1e - 4’會報錯</code>
<code>var_dump(</code><code>$kissme</code><code>);</code>
ps:幾乎所遇小數,在儲存時,儲存的都是近似值而不是精确值~
字元串 string
定義方式:單引号、雙引号、定界符(heredoc)、定界符(newdoc)
無論什麼方式,最終得到的都是string字元串資料
單引号:最簡單、速度最快的定義字元串方式;
<code>$akon</code>
<code>=</code><code>‘this name is akon‘</code><code>;</code>
<code>var_dump(</code><code>$akon</code><code>);</code>
<code>$tired</code>
<code>=</code><code>‘i\‘m a dog!‘</code><code>;</code><code>//因為字元串中包含了單引号,是以就用到了轉義字元</code>
<code>var_dump(</code><code>$tired</code><code>);</code>
雙引号:
<code>$class_name1</code>
<code>=</code><code>‘hello, $tired‘</code><code>;</code>
<code>$class_name2</code>
<code>=</code><code>"hello, $tired"</code><code>;</code><code>//單引号和雙引号的差別就在于對字元串内容的解析;單引号不能對變量進行解析,而雙引号可以,</code>
<code>var_dump(</code><code>$class_name1</code><code>,</code><code>$class_name2</code><code>);</code>
數組
14
<code>$arr1</code>
<code>=</code><code>array</code><code>(</code><code>‘key1‘</code><code>=></code><code>‘very tired‘</code><code>,</code><code>‘key2‘</code><code>=></code><code>‘evil‘</code><code>,);</code><code>//建立一個含元素的數組</code>
<code>var_dump(</code><code>$arr1</code><code>);</code><code>//輸出數值類容</code>
<code>$arr1</code><code>[</code><code>‘key2‘</code><code>];</code><code>//通路數值中的元素</code>
<code>$arr1</code><code>[</code><code>‘key3‘</code><code>] =</code><code>‘kanvi‘</code><code>;</code><code>//增加數組元素</code>
<code>var_dump(</code><code>$arr1</code><code>);</code>
<code>var_dump(isset(</code><code>$arr1</code><code>[</code><code>‘key3‘</code><code>]));</code><code>//用isset()函數判斷元素是否存在</code>
<code>unset(</code><code>$arr1</code><code>[</code><code>‘key2‘</code><code>]);</code><code>//用unset()函數删除數組中的元素,也可删除數組</code>
對象 object
和數組一樣,可以儲存多個資料,對象的每個資料稱為對象的一個屬性(property),php中中對象的建立,需要通過執行個體化(new)類(class)來完成
類:相當于 設計圖
執行個體化:按照這幾圖制作一個成品(對象)的過程,對象能出現的前提是有一個類,類需要一個class關鍵字聲明
15
16
<code>class</code>
<code>student{ </code><code>//建立類</code>
<code> </code><code>public</code>
<code>$name</code><code>;</code>
<code>$age</code><code>;</code>
<code>$gender</code><code>;</code>
<code>}</code>
<code>$stu</code>
<code>=</code><code>new</code>
<code>student;</code><code>//建立對象</code>
<code>var_dump(</code><code>$stu</code><code>);</code>
<code>$stu</code><code>->name =</code><code>‘好餓吖‘</code><code>;</code>
<code>$stu</code><code>->age = 22;</code>
<code>$stu</code><code>->gender =</code><code>‘male‘</code><code>;</code>
<code>var_dump(</code><code>$stu</code><code>->age);</code>