tft每日頭條

 > 生活

 > php語言入門基礎

php語言入門基礎

生活 更新时间:2024-10-04 06:10:48

本文章為連載文章PHP入門的第一篇

建議先閱讀前篇文章:小白教你PHP基礎

運算符

算術運算符

基礎:

符号有: - * / %

說明:

1,他們都是針對數字進行的運算;

2,如果他們的兩邊有不是數字的數據,就會(自動)轉換為數字

3,其中取餘運算(取模運算)%,它隻針對“整數”進行運算,如果不是,會自動截取為整數。

11. 3 % 3 相當于 11 % 3;

11.8 % 3. 8 相當于 11 % 3;

自增自減運算符:

常規:對數字進行自加1或自減1。

字符串: 隻能自增,且自增的效果就是“下一個字符”,其隻能針對字母或數字進行自加:

布爾值遞增遞減無效

null遞減無效,遞增結果為1

字符串自增的例子:

前自增和後自增的區别(自減類似)

php語言入門基礎(PHP從基礎到入門一)1

通常,我們在循環中,推薦使用前加加,比如:

for($i = 1; $i < 10000; $i){ ....... }

演示前加加後加加進行1千萬次的“效率比較”:

php語言入門基礎(PHP從基礎到入門一)2

比較運算符

符号:> >= < <= == != === !==

一般比較:是針對數字進行的大小比較

==和===比較:前者通常叫做模糊相等的比較,後者叫做精确相等的比較(隻有數據的類型和數據的值/内容,都相等,才是全等的)。必須能夠找到手冊的“類型比較表”:附錄》php類型比較表:

php語言入門基礎(PHP從基礎到入門一)3

php語言入門基礎(PHP從基礎到入門一)4

不要對浮點數直接進行大小比較

常見不同類型(标量類型)數據之間的比較規律:

如果比較的數據中,有布爾值,轉為布爾值比較,布爾值比較隻有一個規則:true>false

否則,如果有數字值,就轉為數字值比較:這就是常規比較。

否則,如果兩邊都是“純數字字符串”,轉為數字比較

否則,就按字符串比較。字符串比較的規則是:

對兩邊的字符串,一個一個從前往後取出字符并進行比較,誰“先大”,結果就是它大。

“abc” > true //? false

“abc” > false //true

“0” > false //false

3 > “12”; //false

3 > “12abc”; //false

“3” > “12” //false

“abc” > “c”; //false,後者大

“abc” > “ab123cde”; //true 因為這裡”c”大于”1”

“3abc” > “12abc”; //true, 因為”3”大于“1”

1 > “a”; //? true

“1” > “a” //? false

邏輯運算符

邏輯運算符都是針對“布爾值”進行的運算。

如果不是布爾值,就會轉換為布爾值進行;

布爾值隻有2個:true,false

基本運算規則(真值表):

邏輯與規則:

true && true ==>> true

true && false ==>>false

false && true ==>>false

false && false ==>>false

總結:隻有2個都是true,結果才是true

隻要有一個是false,結果就是false

邏輯或規則:

true || true ==>> true

true || false ==>>true

false || true ==>>true

false || false ==>>false

總結:隻有2個都是false,結果才是false

隻要有一個是true,結果就是true

邏輯非規則:

!true ==>> false

!false ==>> true

邏輯運算符的“短路現象”:

邏輯與短路:

php語言入門基礎(PHP從基礎到入門一)5

結果:如果一個語句中,通過與運算需要進行多項判斷,而且不同的判斷具有明顯不同的“複雜程度”,則我們應該将簡單的判斷放在前面,這時候我們就可以利用短路現象以達到提高效率的目的。

邏輯或短路:

php語言入門基礎(PHP從基礎到入門一)6

結果:如果一個語句中,通過或運算需要進行多項判斷,而且不同的判斷具有明顯不同的“複雜程度”,則我們應該将簡單的判斷放在前面,這時候我們就可以利用短路現象以達到提高效率的目的。

字符串運算符

1,符号隻有一個:. 也衍生出另一個: .=

2,含義:就是将這個符号兩邊的字符串連接起來;

3,如果兩邊不是字符串,就會自動轉換為字符串,然後連接起來。

“ab” . 3 ==>> “ab3”;

“12” . 3 ==>>”123”

12 . 3 ==>> “123”

賦值運算符:

一個基本賦值運算符: =

形式: $變量名 = 值;

理解: 将右邊的值(不管做了多少運算),賦值給左邊的變量。

若幹個衍生的賦值運算符:

= 加等: 形式: $變量名 = 值;

理解: 相當于: $變量名 = $變量名 值;

-= 加等: 形式: $變量名 -= 值;

理解: 相當于: $變量名 = $變量名 - 值;

*= /= %= .= 其都可以認為是上述形式的一種簡化版。

條件(三目,三元)運算符

隻有一個,形式如下:

數據值1 ? 數據值2 : 數據值3

含義:

對數據值1進行判斷,如果為“真”,則該運算符的運算結果就是數據值2,否則就是數據值3;

它是這樣一個流程控制(邏輯判斷)語句的簡寫形式:

if( 數據值1 ){

$變量名 = 數據值2;

else{

$變量名 = 數據值3;

注意:如果數據值1不是布爾值,也會轉換為布爾值;

$score = 66; //分數

$valuation = $score >= 60 ? “及格” : “不及格”; //結果為“及格”

$score = 56; //分數

$valuation = $score >= 60 ? “及格” : “不及格”; //結果為“不及格”

$score = 56; //分數

$valuation = $score ? “及格” : “不及格”; //結果為“及格”,這裡可能就偏離的本意!!

位運算符

基礎規定

1,位是什麼?就是2進制數字的每一個“位”,一個整數數字,有(由)32個位構成!

2,位運算符是僅僅針對整數進行的運算符;

3,位運算符有如下幾個

&: 按位與;

|: 按位或;

~: 按位非;按位取反;

^: 按位異或;

4,位運算符的基本語法規則:

按位與基本規則:

1 & 1 ==>> 1

1 & 0 ==>> 0

0 & 1 ==>> 0

0 & 0 ==>> 0

按位或基本規則:

1 | 1 ==>> 1

1 | 0 ==>> 1

0 | 1 ==>> 1

0 | 0 ==>> 0

按位非基本規則:

~1 ==>> 0

~0 ==>> 1

按位異或基本規則:

1 ^ 1 ==>> 0

1 ^ 0 ==>> 1

0 ^ 1 ==>> 1

0 ^ 0 ==>> 0

可見,按位異或的規則是:相同為0,不同為1

整數的按位與運算(&)

形式:

$n1 & $n2; //n1,n2是2個任意整數;

含義:

将該2個整數的二進制數字形式(注意,都是32位)的每一個對應位上的數字進行基本按位與運算之後的結果!

注意:他們運算的結果,其實仍然是一個普通的數字(10進制)。

示例圖示(隻用8個位來演示):

$r1 = 10 & 20;

10的2進制00001010
20的2進制00010100
&運算結果:00000000

代碼驗證:

php語言入門基礎(PHP從基礎到入門一)7

整數的按位或運算:

形式:

$n1 | $n2; //n1,n2是2個任意整數;

含義:

将該2個整數的二進制數字形式(注意,都是32位)的每一個對應位上的數字進行基本按位或運算之後的結果!

注意:他們運算的結果,其實仍然是一個普通的數字(10進制)。

示例圖示(隻用8個位來演示):

$r1 = 10 | 20;

10的2進制00001010
20的2進制00010100
|運算結果:00011110

則結果該數據值大小為: 1*24 1 * 23 1*22 1* 21 0 = 16 8 4 2 = 30

代碼驗證:

php語言入門基礎(PHP從基礎到入門一)8

整數的按位左移運算

形式:

$n1 << $m

含義:

将十進制數字n1的二進制數字形式(也是32位的)的每一個位上的數字都一次性往左邊移動m位,

并将右邊空出來的位置補0,左邊冒出去的不管,這樣操作之後得到的結果。

示例圖示(隻用8個位來演示):

$r1 = 10 << 2;

10的2進制00001010
左移2位後00101000
則結果為:25023000

可見,結果為:25 23 = 32 8 = 40

代碼驗證:

php語言入門基礎(PHP從基礎到入門一)9

補充知識:原碼,反碼,補碼

原碼:

就是一個二進制數字,從“數學觀念”上來表達出的形式。其中,我們規定:

一個數字的最左邊一位是“符号位”,0表示正數,1表示負數;

比如:

php語言入門基礎(PHP從基礎到入門一)10

反碼:

正數的反碼就是其本身(即不變);

負數的反碼是:符号位不變,其他位取反;

比如:

php語言入門基礎(PHP從基礎到入門一)11

補碼:

正數的補碼就是其本身(即不變);

負數的補碼是:符号位不變,其他位取反後 1——即反碼 1

php語言入門基礎(PHP從基礎到入門一)12

一個小提示:計算機内部的運算,實際全都是使用補碼進行的,而且運算的時候,符号位不再區分,直接也當做“數據”參與運算:

示例1:

5 3:

php語言入門基礎(PHP從基礎到入門一)13

示例2: 5-3:

實際上,cpu内部,會将“減法”運算,轉換為“加法運算”,即:5 (-3)

php語言入門基礎(PHP從基礎到入門一)14

位運算符的應用:管理一組事物的開關狀态

什麼是開關狀态?

現實中,有很多數據都是隻有2種結果(值)的,對應的其實就是我們的布爾類型的值。

這裡,所謂管理一組事物的開關狀态,應該理解為其實就是管理若幹個隻有2個狀态的“數據符号”。

比如:有5個燈泡,對應5個狀态數據。

這5個燈泡,就有 25 種狀态呢?

這裡的管理目标是:使用一個變量,就可以表達若幹個數據的“當前狀态”。具體有3個任務:

1,通過該變量,可以獲知任何一個數據(燈泡)的當前狀态。

2,通過該變量,可以将一個一個數據的狀态“關閉”;

3,通過該變量,可以将一個一個數據的狀态“開啟”;

看代碼!!!

數組運算符

有這些:

: 數組聯合,也可以理解為“數組串聯”。

将右邊的數組項合并到左邊數組的後面,得到一個新數組。如有重複鍵,則結果以左邊的為準

$arr1 = array(5=>10, 8=>20, 10=>30);

$arr2 = array(3=>33, 2=>22);

$r1 = $arr1 $arr2; //結果為:array(5=>10, 8=>20, 10=>30, 3=>33, 2=>22)

另一個有重複鍵的例子:

$arr1 = array(5=>10, 8=>20, 10=>30);

$arr2 = array(8=>33, 2=>22);

$r1 = $arr1 $arr2; //結果為:array(5=>10, 8=>20, 10=>30, 2=>22)

= =:如果兩個數組具有相同的鍵名和鍵值(可以順序不同,或類型不同),則返回true

$arr1 = array(3=>33, 2=>22);

$arr2 = array(2=>”22”, 3=>”33” );

此時,$arr1,和 $arr2是相等的( = = )

!=

= = =: 如果兩個數組具有相同的鍵名和鍵值且順序和類型都一樣,則返回true

!= =

錯誤控制運算符@:

通常就用在一個地方:

$link = @mysql_connect(“數據庫服務器地址”, “用戶名”, “密碼”);

作用是:

如果該連接數據的語句失敗(比如連接不上),則屏蔽該失敗的錯誤提示!

運算符的優先級

運算符,都有優先級問題!

記住以下幾條就可以了:

要意識到運算符有優先級問題

括号最優先,賦值最落後(通常)

先乘除後加減

大緻:單目運算符〉算術運算符〉比較運算符〉邏輯運算符(除了“非”運算)

能查到手冊: 語言參考》運算符》運算符的優先級。

流程控制

流程圖基本符号:

隻是人們習慣上使用的一些圖形符号,以代表一定的含義,幫組别人理解流程過程。

php語言入門基礎(PHP從基礎到入門一)15

if分支結構

基本語法形式如下:

if (條件判斷1){

分支1;

}

else if (條件判斷2){

分支2;

}

else if (條件判斷3){

分支3;

}

。。。。。。

else {

//else分支

}

說明:

1,其中,綠色的else if部分可以重複若幹次,也可以完全省略!

2,其中,紫色的else部分可以完全省略。

3,該if語句會從前往後(從上往下)依次判斷條件,如果某個條件滿足了,就會執行其中對應的分支,然後就結束if分支結構語句!

4,如果前面所有條件都不滿足,就會執行最後的else分支(前提是有else分支)。

圖示如下:

php語言入門基礎(PHP從基礎到入門一)16

switch分支結構

形式:

switch ( 表達式 ){

case 條件值1:

分支1;

【break;】 //是可以省略部分,不是語法所必須;

case 條件值2:

分支2;

【break;】 //是可以省略部分,不是語法所必須;

........

default :

default 分支;

}

說明:

1,将表達式的結果數據,跟“條件值1”進行“相等判斷”,如果相等,就執行分支1,否則繼續對後續值進行判斷。。。。

2,如果某個分支判斷為相等,則執行該分支語句後,并且如果其中沒有break語句,則會直接進入下一個分支繼續執行,而不會再去判斷下一個分支的條件值了,并直到碰到break語句才會跳出。

關系圖如下所示:

php語言入門基礎(PHP從基礎到入門一)17

舉例如下:

php語言入門基礎(PHP從基礎到入門一)18

for循環結構

php語言入門基礎(PHP從基礎到入門一)19

php語言入門基礎(PHP從基礎到入門一)20

查看相關素材及更多課程請搜索微信公衆号“愛搞機個人版”,喜歡學習的建議關注下,所有課程免費! 點下關注不迷路!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved