PHP對於大部分人來講,是比較容易入門的。筆者也是剛學習不久,因此就把本身學習的基礎知識進行總結和整理。第一部分是類型與運算符。若是你想學習PHP,能夠參考PHP學習手冊學習,任何一本教學資料也沒有PHP學習手冊講的詳細。下載地址:PHP學習手冊php
PHP支持8種原始類型,包括boolean(布爾型)、integer(整型)、float(浮點型,也稱做 double)、string(字符串)、array(數組)、object(對象)、resource(資源)、NULL(無類型),還有三種僞類型。這裏主要講解前四種標量類型。PHP不用提早定義數據類型,它會本身識別。編程
整型數的字長和平臺有關,儘管一般最大值是大約二十億(32 位有符號)。64 位平臺下的最大值一般是大約 9E18。PHP 不支持無符號整數。Integer 值的字長能夠用常量 PHP_INT_SIZE來表示,自 PHP 4.4.0 和 PHP 5.0.5後,最大值能夠用常量 PHP_INT_MAX 來表示。能夠用下面的代碼證實一下。數組
<?php $a=12345; echo "a的值爲".$a; echo '</br>'; echo "字節爲".PHP_INT_SIZE; echo '</br>'; echo "最大值爲".PHP_INT_MAX; echo '</br>'; echo var_dump($a); ?>
運行結果爲:
若是給定的一個整數,溢出了整數的範圍,將直接會解釋成float。學習
布爾型細節
最簡單的類型,true和false表明真和假。
當轉換爲 布爾 時,如下值被認爲是 false:
• 布爾值 false 自己
• 整型值 0(零)
• 浮點型值 0.0(零)
• 空字符串,以及字符串 "0"
• 不包括任何元素的數組
• 不包括任何成員變量的對象(僅 PHP 4.0 適用)
• 特殊類型 NULL(包括還沒有賦值的變量)
• 從空標記生成的 SimpleXML 對象
除了上面那些,其餘的全部值都會被認爲是true。.net
精度爲14個字節,從左邊不是零的一個開始算起。
好比、
$a=0.123444555666666666;
echo "a的值爲".$a;
輸出的值爲:a的值爲0.12344455566667
當到第14位數時,它會自動四捨五入。code
字符型最大能夠達到 2GB。
須要注意的一點是區分單引號和雙引號。用雙引號定義的字符串最重要的特徵是變量會被解析。舉個例子。對象
$b=123; echo "hello$b"; echo 'hello$b'; #結果爲 hello123 hello$b
運算符是能夠經過給出的一或多個值(用編程行話來講,表達式)來產生另外一個值(於是整個結構成爲一個表達式)的東西。下面對幾種經常使用的運算符進行詳細說明。blog
舉個例子資源
$i=10; $i=++$i; # ++在前,先++而後在賦值。因此輸出的結果爲11. $i=i++; # ++在後,先賦值,而後在++。因此輸出的值爲10. //這裏注意的是,++和--的對象是變量!!好比$a=++3就是錯的!! echo 'i的值爲'.$i
--i和i--一樣的道理。字符串
$a + $b 加法 $a 和 $b 的和。
$a - $b 減法 $a 和 $b 的差。
$a * $b 乘法 $a 和 $b 的積。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取模 $a 除以 $b 的餘數。
這些就不舉例子了。還有$a+、$a-、$a*、$a/、$a%、(左加、左減、左乘、左除、左取餘)。
舉個例子。
$a=10; $a-=2; echo 'a的值爲'.$a; #執行結果爲:a的值爲8 $a-=2就至關於$a=10-2;
$a == $b 等於 TRUE,若是類型轉換後 $a 等於 $b。
$a === $b 全等 TRUE,若是 $a 等於 $b,而且它們的類型也相同。
$a != $b 不等 TRUE,若是類型轉換後 $a 不等於 $b。
$a <> $b 不等 TRUE,若是類型轉換後 $a 不等於 $b。
$a !== $b 不全等 TRUE,若是 $a 不等於 $b,或者它們的類型不一樣。
$a < $b 小與 TRUE,若是 $a 嚴格小於 $b。
$a > $b 大於 TRUE,若是 $a 嚴格大於 $b。
$a <= $b 小於等於 TRUE,若是 $a 小於或者等於 $b。
$a >= $b 大於等於 TRUE,若是 $a 大於或者等於 $b。
$a <=> $b 結合比較運算符 當$a小於、等於、大於than $b時分別返回一個小於、等於、大於0的integer 值。 PHP7開始提供.
$a ?? $b ?? $c NULL 合併操做符 從左往右第一個存在且不爲 NULL 的操做數。若是都沒有定義且不爲 NULL,則返回 NULL。PHP7開始提供
$a= false&&true; $b= true and false; var_dump($a,$b); #執行結果:bool(false) bool(true) $a=false$b=true if ($a==false){ #由於,and的優先級低於「=」因此$b先進行了賦值。 echo '$a=false'; } if ($b==true){ echo '$b=true'; }
||和or都是邏輯或,區別是||優先級高於or,or的優先級比賦值運算符還要低。
舉個例子。
$a= true||false; $b= false or true; var_dump($a,$b); #執行結果:bool(true) bool(false) $a=true$b=false if ($a==true){ #由於,or的優先級低於「=」因此$b先進行了賦值。 echo '$a=true'; } if ($b==false){ echo '$b=false'; }
有兩個字符串(string)運算符。第一個是鏈接運算符("."),它返回其左右參數鏈接後的字符串。第二個是鏈接賦值運算符(".="),它將右邊參數附加到左邊的參數以後。
舉個例子。
$a = "Hello "; #執行結果爲 Hello World! $b = $a . "World!"; echo "$b"; $a = "Hello "; $a .= "World!"; #執行結果爲 Hello World! echo "$a";
這裏不只能夠鏈接字符串,若是是數字的話也會看成字符串去鏈接。
好比 $a=123;$b=456;echo $a.$b;
結果爲:123456
格式:表達式1?表達式2:表達式3
含義:若是表達式1爲真,執行表達式2,若是表達式1爲假,則執行表達式3。
舉個例子:
$a=2; $b=3; $c=$a<$b?"b大於a":"a大於b"; echo '$a='.$a,'<br/>','$b='.$b,'<br/>',$c; #表達式2和表達式3能夠是數,也能夠是字符串,也能夠是一個式子。
輸出結果爲:
$a=2
$b=3
b大於a
instanceof 用於肯定一個 PHP 變量是否屬於某一類 class 的實例
舉個例子
class A{}
class B{}
$a=new A;
var_dump($a instanceof A);
var_dump($a instanceof B);
輸出結果爲:
bool(true) bool(false) //第一個爲真,第二個爲假。因此$a屬於A類。
這裏直接參考的PHP學習手冊,按照優先級,由高到低列出下表。
第一部分總結了PHP的一些數據類型和運算符。在下一部分中,會總結一些流程控制,包括分支控制、循環控制等。