PHP-----PHP程序設計基礎教程----第二章PHP基本語法

博文結構:php

2.1 PHP語法風格html

2.1.1 PHP標記編程

  PHP有四種風格的標記,具體如表2-1所示:數組

  表2-1 PHP開始和結束標記瀏覽器

標記類型服務器

開始標記編程語言

結束標記函數

示例spa

說明操作系統

標準標記

<?php

?>

<?php  echo 「Hello」;  ?>

服務器不由用這種標記,兼容性、可移植性、可複用性好

短標記

<?

?>

<?     echo 「Hello」;  ?>

必須在配置文件php.ini中啓用short_open_tag選項

ASP式標記

<%

%>

<%     echo 「Hello」;  %>

必須在配置文件php.ini中啓用asp_tags選項

Script標記

<script language=」php」>

</script>

<script language=」php」>echo 「Hello」; </script>

只需瞭解,PHP不推薦這種標記

  在上述四種標記中,只有標準標記和Script標記能保證對任何配置都有效,而段標記和ASP式標記只能在php.ini中顯式的啓用。

  注意:

1)若腳本中包含XML語句,避免使用段標記,由於「<?」是XML解析器的一個處理指令。
2)PHP和HTML代碼能夠進行混合編程。 <html> <body> <p>Hello HTML</p> <p><?php echo "Hello,PHP"; ?></p> </body> </html>
 更常見的用法:
 <?php if($age>18): ?>
    <p>成年人</p>
 <?php else: ?>
    <p>小朋友</p>
 <?php endif ?>
(3)瀏覽器不識別PHP代碼,PHP必須在服務器中執行,雙擊打開PHP文件是達不到效果的。

2.1.2 PHP註釋

  PHP支持C、C++、Shell三種風格的註釋。

  ①C++風格註釋

    <?php echo "Hello,PHP"; //輸出一句話------行註釋 ?>  

  ②C風格多行註釋

   <?php /* echo "Hello,PHP"; $c=10; 塊註釋 */ ?> 

  ③Shell風格註釋「#」

     <?php echo "Hello,PHP"; #輸出一句話------行註釋 ?> 

 

2.2 PHP標識符與關鍵字

2.2.1 標識符

  標識符:變量名、函數名、類名等。

  定義標識符規則:

  ①標識符能夠是任意長度,只能由字母、數字、下劃線組成;

  ②標識符不能以數字開頭;

  ③標識符不能包含空格;

  ④若是標識符由多個單詞組成,建議使用下換線分割;

  ⑤標識符區分大小寫,不過函數名稱例外,不區分大小寫;

2.2.2 關鍵字

  關鍵字是編程語言裏事先定義好並賦予特殊含義的單詞,也稱保留字。

 

2.3 PHP常量

2.3.1 常量的定義

  腳本執行週期內,值不會發生變化的量,稱爲常量。相同的值,定義爲常量,能夠節省存儲空間,如運行模式常量,版本常量,路徑常量等。

  ①語法1

   bool define(常量名,常量值,$case_insensitive=false) 

  上述聲明中,常量名、常量值是必須的,參數$case_insensitive是可選的,用於指定常量名稱是否對大小寫敏感,若是$case_insensitive=true,表示在調用該常量時,常量名對大小寫不敏感,不然表示常量名對大小寫敏感。默認狀況下$case_insensitive=false。

  ②語法2

   const 常量名=常量值 

  上述聲明中,與define定義的常量同樣。

  注意:  

/* ①使用const方式定義的常量的缺點:低版本不支持; ②不能在函數區、流程控制中定義常量; ③按照開發慣例,常量名推薦所有字母大寫 ④常量名前面儘可能不要加「$」 下面經過示例演示常量的定義 */
<?php //定義常量
    define('VERSION',"2.0.0"); //打印常量
    echo VERSION; ?>

2.3.2 預約義常量

  PHP提供了不少預約義的常量,用以獲取PHP中的信息,不容許開發人員隨意修改。如表2-2所示:

表2-2 PHP中預約義常量的名稱及其做用

常量名

功能描述

__FILE__

默認常量,PHP程序文件名

__LINE__

默認常量,PHP程序中當前行號

PHP_VERSION

內建常量,PHP程序的版本

PHP_OS

內建常量,執行PHP解析器的操做系統的名稱

TRUE

該常量是一個真值(true

FALSE

該常量是一個假值(false

NULL

一個null

E_ERROR

該常量指到最近的錯誤處

E_WARNING

該常量指到最近的警告處

E_PARSE

該常量指到解析語法有潛在問題處

E_NOTICE

該常量爲發生不尋常,但不必定是錯誤處

   示例代碼以下:

<?php //獲取當前文件路徑
    echo "當前文件路徑是:" . __FILE__; //獲取當前php的版本號
    echo "當前PHP的版本是" . PHP_VERSION; //獲取當前操做系統
    echo "當前的操做系統是:" . PHP_OS; ?>

 

2.4 PHP變量

2.4.1 變量的定義

  在PHP中,變量是用一個「$」符號和後面的變量名來聲明表示,變量名一樣區分大小寫,命名規則與標識符相同。同時,由於PHP一種弱語言,不須要顯式聲明,變量的聲明和賦值是同時進行的,即直接將一個值經過「=」賦給變量。

$name="歐陽華夏"; $age=28; $is_Single=true; $Info=["歐陽華夏",28,true];

  注意:

/* 變量默認是傳值賦值,即將A變量的值賦給B變量時候,整個A的值被賦值到B;變量還有一種賦值方式是引用賦值,表示B變量引用了A變量,若是一個變量的值發生改變,另一個變量的值隨之發生變化。想要實現變量的引用賦值,須要將「&」符號加到要賦值的變量前。 */
<?php $text="Hello"; $new_text=&$text; ?>

  變量的讀取:

  echo的做用是向頁面輸入字符串

  var_dump()輸出複雜類型

  print_r()輸出複雜類型

2.4.2 PHP的數據類型

  PHP數據類型共八種,如圖2-1所示。標量類型只能存儲一個數據,符合類型能夠存儲一組數據。                                                                                                           

  圖2-1 八種數據類型

  一、boolen布爾型

  不只true/false能夠表示boolen值,其餘類型的數據也能夠表示boolen值。例如:0和非0

  二、integer整型

  能夠用十進制、十六進制、八進制或者二進制指定,前面加上「+」和「-」表示正數和負數。

  整型最大值: PHP_INT_MAX 

  三、float浮點型

  不能比較兩個浮點數是否相等。

  四、string字符串型

  字符串的定義雙引號、單引號均可以。可是兩者存在區別。

  ①包含在雙引號的字符串會被解析,包含在單引號的字符串不會解析,下面示例對這句話進行說明:

<?php $a=9; $char1="hello$a"; $char2='hello$a'; echo "char1的輸出結果是:" . $char1;  //char1的輸出結果是:hello9----$a被解析
    echo "<br/>"; echo "char2的輸出結果是:" . $char2;     //char2的輸出結果是:hello$a---$a未被解析
?>

  ②對待轉義字符不一樣

  • 單引號字符串
    • 不支持特殊的轉義符號,例如 \n
    • 若是要表示一個單引號字符內容,能夠經過 \' 表達
    • 若是要表示一個反斜線字符內容,能夠經過\\ 表達
  • 雙引號字符串
    • 支持轉義字符

2.4.3 檢測變量的數據類型

  變量的數據類型在賦值時候肯定,在PHP中提供了一組is_*()函數,括號中參數爲要檢測的變量,若是檢測的變量符號則返回true,不然返回false。

 表2-3 檢測數據類型的相關函數

函數名稱

功能描述

函數名稱

功能描述

Is_bool(PHP變量)

檢測變量是否屬於布爾類型

Is_array(PHP變量)

檢測變量是否屬於數組

Is_string(PHP變量)

檢測變量是否屬於字符串類型

Is_response(PHP變量)

檢測變量是否屬於資源

Is_integer(PHP變量)

檢測變量是否屬於整型

Is_numeric(PHP變量)

檢測變量是否屬於數組或者數字組成的字符串

Is_null(PHP變量)

檢測變量是否屬於空值

Is_object(PHP變量)

檢測變量是否屬於對象類型

Is_float(PHP變量)

檢測變量是否屬於浮點類型

 

 

  對null值的檢測
  爲null的幾種狀況:①變量未賦值;②變量被刪除;③變量被賦null;

  empty()判斷變量是否爲空

  PHP中認爲變量的值爲:「」,0,「0」,[],null,false時,變量雖然定義了,但無實際意義,爲空。

  isset()變量未設置或者設置爲NULL時,返回false,其他返回true。變量爲空字符串或者0時,此時變量有具體類型,表示已經設置了。

 

2.5 變量類型的轉換

2.5.1 自動類型轉換

  在PHP中,最多見的自動類型轉換狀況有三種:轉爲布爾、轉爲數值、轉爲字符串;

  一、轉爲布爾型

  轉爲false的狀況:

  ①整型值:0

  ②浮點型值:0.0

  ③空字符串:」「

  ④字符串:」0「

  ⑤空數組:[]

  ⑥不包括任何成員變量的對象

  ⑦NULL

  除此以外,其餘值會被轉爲true。

 

  二、轉爲數值型

  ①純數字組成的字符串轉爲相應的數字:」123456「----->123456;

  ②能夠轉換爲浮點型的數字轉化爲相應的浮點數:」123.456「----->123.456;

  ③以數字開頭的字符串轉爲對應的數字:」123456歐陽華廈「----->123456;

  ④不以數字開頭的字符串,包括」true「,轉爲0:」歐陽華廈123456「----->0;

  ⑤布爾類型值:true--->1;false--->0;

  自動轉換不改變原始變量的數據類型,僅改變參與運算的數據的類型。

 

  三、轉爲字符串

  ①bool類型轉換成字符串:true--->"1"     false---->"0";

  ②整型和浮點型轉換爲字符串:把數字的字面樣式轉換爲string形式。

2.5.2 強制類型轉換

  PHP中的強制類型轉換很是簡單,只須要在變量前加一個小括號,並把目標類型填寫在括號中實現。表2-4列舉了強制轉換的類型。

  表2.4 強制轉換類型

函數名稱

功能描述

函數名稱

功能描述

boolen

強轉爲布爾型

(float)

強轉爲浮點型

(string)

強轉爲字符串型

(array)

強轉爲數組

(integer)

強轉爲整型

(object)

強轉爲對象

 

 2.6 PHP運算符

 2.6.1 算數運算符

   見表2-5:

  表2-5 算數運算符

運算符

運算

範例

結果

+

正號

+3

3

-

負號

-2

-2

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模

7%5

  有浮點數參與運算的時候,計算結果的數據類型老是浮點型;當整數與整數運算的結果是小數時,其數據類型也是浮點型。

  在進行取模運算的時候,運算結果的正負取決於被模數(%左邊的數)的符號,與模數(%右邊的數)的符號無關。如(-5)%3=-2,而5%(-3)=2.

2.6.2 賦值運算符

  見表2-6:

  表2-6 賦值運算符

運算符

運算

範例

結果

=

賦值

$a=3;$b=2;

$a=3;$b=2;

+=

加等於

$a=3;$b=2;$a+=$b;

$a=5;$b=2;

-=

減等於

$a=3;$b=2;$a-=$b;

$a=1;$b=2;

*=

乘等於

$a=3;$b=2$a*=$b;

$a=6;$b=2;

/=

除等於

$a=3;$b=2;$a/=$b;

$a=1.5;$b=2;

%=

模等於

$a=3;$b=2;$a%=$b;

$a=1;$b=2;

.=

鏈接等於

$a=’abc’;$a.=’def’;

$a=’abcdef’;

   賦值運算符的做用將右側表達式結果(從右側到左側計算)賦值給左側變量;

  ①在PHP語言中能夠經過一條賦值語句對多個變量進行賦值; $a=$b=$c=10; 

  ②在表2-7中,除了「=」,其他都是特殊的賦值運算符;

  ③「.=」表示對兩個字符串進行鏈接操做,生成一個新的字符串並賦值給變量,它又被稱爲字符串運算符;

2.6.3 遞增遞減運算符

  見表2-7:

  表2-7 遞增遞減運算符

運算符

運算

範例

結果

++

自增(前)

$a=2;$b=++$a;

$a=3;$b=3;

--

自減(前)

$a=2;$b=--$a;

$a=1;$b=1;

++

自增(後)

$a=2;$b=$a++;

$a=3;$b=2;

--

自減(後)

$a=2;$b=$a--;

$a=1;$b=2;

   遞增遞減字符: 

<?php $x='a'; echo --$x . "<br/>";    //輸出爲a
    echo ++$x . "<br/>";    //輸出爲b
    $x='z'; echo ++$x . "<br/>";    //輸出爲aa
    $x='Z'; echo ++$x . "<br/>";    //輸出爲AA
    $x='abcd'; echo ++$x . "<br/>";    //輸出爲abce
?>

  ①在PHP語言中,只支持純字母(a~z和A~Z)的遞增運算;在PHP中對字符進行遞減操做時,該操做無效,且操做數的值不變。

  ②當對字符z和Z進行遞增操做時,字符會向前進一位,變成aa後者AA;

  ③對多個字母組成的字符串進行遞增操做時,會針對字符串末尾的單個字符進行遞增操做。

  遞增遞減布爾值或者NULL:

  ①當操做數是布爾類型時,遞增遞減操做對其值不產生影響;

  ②當操做數爲null時,遞增的結果是1,遞減不受印象。

2.6.4 比較運算符

  見表2-8:

   表2-8 比較運算符

運算符

運算

範例($x=5)

結果

==

等於

$x ==4;

false

!=

不等於

$x!=4;

true

<>

不等於

$x<>4;

true

===

恆等

$x===5;

true

!==

不恆等

$x!==’5’;

true

>

大於

$x>5;

false

>=

大於或者等於

$x>=5;

true

<

小於

$x<5;

false

<=

小於或者等於

$x<=5;

true

  ①「===」和「!==」比較少見,當$x===$y爲true,表示x,y不止數值相等,兩者類型也相等,當$x!==$y 爲true時,要麼數值不相等,要麼數據類型不相等;

  ②在程序中,若是參與比較運算的操做數中含數字類型的數據時,則在比較的過程當中,會將全部的操做數轉爲數值,而後按照數值進行比較;

2.6.5 邏輯運算符

  見表2-9:

  表2-9 邏輯運算符

  

運算符

運算

範例

結果

&&

$a && $b;

$a$b都爲true,結果爲true,不然爲false

||

$a || $b;

$a$b中至少又一個爲true,結果爲true,不然爲false

!

! $a;

$afalse,結果爲true,不然相反

xor

異或

$a xor $b;

$a$b的值一個爲true,一個爲false時,結果爲true,不然爲false

and

$a and $b;

&&相同,但優先級較低

or

$a or $b;

||相同,但優先級較低

 

 2.7 流程控制語句

2.7.1 選擇控制語句 

  ①if

  ②if......else

  ③if......elseif......else

  ④switch......case

  注意:

/* ①if語句中只包含一條語句時,它的大括號是能夠省略的。 ②使用switch語句過的過程當中,若是多個case條件後面的執行語句是同樣的, 則該執行語句只需書寫一次便可。 ③在PHP中,switch語句中的break也可使用continue代替,做用基本相同。 ④在第一個case匹配成功後,沒有碰到break語句,會不進行匹配直接執行其後全部case中的語句段,直到switch語句的最後一行或者碰到break語句。 */

2.7.2 循環語句結構

  ①while

  ②do......while

  ③for

  ④foreach(專門用來遍歷數組)

2.7.3 跳轉語句

  跳轉語句用於實現循環執行過程當中程序流程的跳轉,在PHP中的跳轉語句有break語句、continue語句和goto語句,同時本段再介紹三個函數die\exit\sleep

  一、break語句

  ①當break出如今switch條件語句中時,做用是終止某個case並跳出switch結構;

  ②當break出如今循環語句中時,做用是跳出當前循環,執行後面的代碼;

  ③break能夠接受一個數字參數決定跳出幾重循環;

  

  二、cintinue語句

  終止本次循環,執行下一次循環

 

  三、goto語句

  ①goto語句的做用是跳轉到程序的另外一位置。在目標位置用目標名稱加上冒號來標記,跳轉語句是goto以後加上目標位置的語句;

  ②goto語句僅在PHP5.3及以上版本有效;

  ③goto語句只能在同一個文件或則做用域中跳轉,也就是說沒法跳出一個函數或者類方法,也沒法跳入另外一個函數。

<?php for($i=1,$j=10;$i<20;$i++){ while($j--){ if($j==5) goto end; } } echo '$i=' . $i;  //不執行
    end:
    echo '$i=' . $i . '  $j=' . $j;  //$i=1 $j=5
?>

  四、die / exit

  退出代碼執行,當前位置以後的全部代碼不執行,至關於return,能夠用來進行程序運行控制,能夠在出錯的時候執行此語句,退出代碼的執行;

  exit能夠在退出時候輸出變量值,完成函數的執行; exit('結果爲:' . $res); //輸出 結果爲:$res  

  五、sleep

  休眠函數,執行到sleep(秒數)所在語句時,延緩必定的秒數,繼續執行,能夠查看一些臨時數據。

相關文章
相關標籤/搜索