PHP語言基礎知識

不管多麼險峻的高山,總是爲不畏艱難的人留下一條攀登的路。以下是小編爲大家搜索整理了PHP語言基礎知識,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

PHP語言基礎知識

  PHP語言基礎(一)

  1.數據類型

PHP的數據類型可以分爲3種,即:標量數據類型、複合數據類型(就是多個簡單的數據類型組合在一起,存儲在一個變量中)和特殊數據類型。

標量數據類型

標量數據類型是數據結構中最基本單元,只能存儲一個數據。PHP中標量數據類型包括4種。

1.布爾型:布爾型是PHP中較爲常用的數據類型之一。它保存一個True或False值。其中True和False是PHP內部關鍵字。設定一個布爾型的變量,只需將True或False賦值給變量即可。通常布爾型變量都是應用在條件或循環語句的表達式中。

例子:布爾型變量應用

//布爾型變量

$boo=true;

if ($boo==true)

{

echo "我們一直在努力!";

}

else

{

echo "錯了!";

}

//或者寫成:

if ($boo)

{

echo "我們一直在努力!";

}

else

{

echo "錯了!";

}

?>

2.字符串型(string)

字符串是連續的字符序列,由數字、字母和符號組成。字符串的每個字符只佔有一個字節。在PHP中,定義字符串有3種方式。

? 單引號(?)

? 雙引號(“)

? 界定符(<<<)

單引號和雙引號是經常被使用的定義方式,定義格式如下:$a=?字符串?;或$a=“字符串”;

兩者的區別是:雙引號中所包含的變量會自動被替換成實際數值,而在單引號中包含的變量則按普通字符串輸出。

例子:單引號和雙引號

$i="你好,PHP!";

echo "$i";

echo "

";

echo '$i';

?>

兩者之間另一處的不同點是對轉義字符的使用

使用單引號時,只要對“?”進行轉義就可以了,但使用雙引號時,還要注意““”、”$“等字符的使用。這些特殊字符都要通過轉義符”“來顯示。

常用的轉義字符如:

n 回車

r 回車

t 水平製表符

反斜槓

$ 美元符號

? 單引號

” 雙引號

以上這些特殊字符都必須要用轉義字符才能輸出

也就是說:要在一長串用單引號或雙引號包含的字符串中輸出這些特殊字符,必須用轉義字符。

例子:轉義字符

//雙引號中包含換行符的情況

$language="PHP";

$w1="welcome to study $language! nwelcome to tj!";

//echo $w1;

/*

我們可以看到n這個換行符沒有起作用!這是因爲不同的瀏覽器的函數庫不同會造成不同的效果

所以,對於換行符我們可以使用

來代替!

*/

$w2="welcome to study $language!

welcome to tj!";

//echo $w2;//我們可以看到換行出現了!

//雙引號中包含雙引號的情況

$app="蘋果";

$w3="我喜歡"甜的"$app";

//echo $w3;//在雙引號中使用雙引號,需要用到轉義字符!

//雙引號中包含單引號的情況

$pear="梨";

$w4="我喜歡'{$pear}'";//由於單引號中不能解析變量,所以需要花括號!

//echo $w4;

//單引號中包含單引號的情況

$w5='我喜歡'桃'';

//echo $w5;

//單引號中包含雙引號

$w6='我喜歡"桔子"';

echo $w6;

?>

我們可以看到在雙引號中使用單引號,以及在單引號中使用雙引號都不需要轉義!只有在單引號裏使用單引號,以及在雙引號中使用雙引號才需要轉義。

定義簡單的字符串時,使用單引號是更加高效的處理方式。使用雙引號時,PHP將花費一些開銷處理字符的轉義和變量的解析。因此,當沒有特別需求,應使用單引號。

界定符(<<<)是從PHP4.0開始支持的。在使用時後接一個標識符,然後是字符串,最後是同樣的標識符結束字符串。

格式:$string=<<

此處爲要輸出的字符串

str

其中str爲指定的標識符。

定界符”<<<“後面緊接着的是定界標識符。就是上面的str。標識符應遵循以下規則:

1.標識符由字母、數字或下劃線構成。並且不能以數字開始。

2.結尾的標識符必須頂格書寫,其前不能有任何其他字符。

通常的錯誤是將結尾的定界標識符進行縮進。(也就是點擊了鍵盤上的Table鍵)

例子:使用定界符定義字符串

$str=<<

你好!PHP

EOD;

echo $str;

//定界符中的字符串可以被解析,可以使用轉義字符,但不必轉義引號。

//當需要定義或輸出大量的文本時,使用定界符顯得尤爲方便。

$str=<<

你好!"PHP"

EOD;

echo $str;

$i="PHP";

$str=<<

你好!$i

EOD;

echo $str;//可以輸出變量$i

//下面的情況會輸出:你好!"PHP",也就是說在定界符中就可以解析變量,不需要雙引號! $i="PHP";

$str=<<

你好!"$i"

EOD;

echo $str;

?>

3.整型(integer)

整型數據類型只能包含整數。在32位系統中,有效的範圍是-2147483648~+2147483647,如果超出了這個這個範圍,整數就會溢出。這時,系統會自動將其轉化爲浮點型數字。 整型數可以用十進制,八進制和十六進制來表示。如果用八進制,數字前面必須加0,如果用十六進制,則需要加0x。

在表達式中,計算的結果均以十進制數字輸出

例子:整型變量的表示

$str1=1234;

$str2=01234;

$str3=0x1234;

echo "數字1234不同進制的輸出結果:

";

echo "十進制的結果是:$str1

";

echo "八進制的結果是:$str2

";

echo "十六進制的結果是:$str3

";

//以上結果均以十進制的形式輸出

//如果想在進制間進行轉換,那麼可以利用PHP的一些內置函數!

bindec() -- 二進制轉換爲十進制

decbin() -- 十進制轉換爲二進制

dechex() -- 十進制轉換爲十六進制

decoct() -- 十進制轉換爲八進制

hexdec() -- 十六進制轉換爲十進制

octdec() -- 八進制轉換爲十進制

base_convert()-- 在任意進制之間轉換數字

//十六進制轉換爲十進制

$f1=hexdec("0x4D2");

//echo $f1;//輸出1234

/**

* 十進制轉換爲十六進制

*/ $f2=dechex("1234"); echo $f2;//輸出4d2 /** * 在任意進制之間轉換數字 */ $f3=base_convert("1234",10,16);//將十進制的1234轉換爲十六進制 echo $f3;//輸出4d2

?>

4.浮點型(float)

浮點數據類型可以用來存儲數字,也可以保存小數。它提供的精度比整數大得多。在32位系統中,有效範圍是1.7E-308~1.7E+308。在PHP4.0以前的版本中,浮點型的標識爲double,也叫雙精度浮點數,兩者沒有區別。浮點型數據默認有兩種書寫格式,一種是標準格式。

如:3.1415、0.333、-35.8

還有一種是科學記數法格式。

如:3.58E1、849.72E-3

注:浮點型的數值只是一個近似值,所以要儘量避免浮點型之間比較大小,因爲最後的結果往往是不準確的。

以上的布爾型、字符串型、整型、浮點型均爲標量數據類型!

複合數據類型

複合數據類型包括兩種(數組和對象)

1.數組(array)

數組是一組數據的集合,它把一系列數據組織起來,形成一個可操作的`整體。數組中可以包括很多數據:標量數據、數組、對象、資源,以及PHP中支持的其他語法結構等。數組中的每個數據稱爲一個元素,元素包括索引(鍵名)和值兩部分。元素的索引只能由數字或字符串組成。元素的值可以是多種數據類型。定義數組的語法格式如下:

$array=(“value1”,”value2”……);或

$array[key]=“value”;或

$array=(key1=>value1,key2=>value2……);

例子:數組初始化

//數組的初始化

$arr=array(0=>1,1=>2,hi=>"hello");

print_r($arr);

echo $arr[0];//輸出數字下標的數組元素

echo "

";

echo $arr['hi'];//輸出字符串下標的數組元素

聲明數組後,數組中的元素個數還可以自由更改。只要給數組賦值,數組就會自動增加長度。

例子:更改數組的長度

//下面我們創建一個包含3個元素的數組$arr,然後向$arr數組中添加2個新元素,最後輸出數組元素的值。

$arr=array("s1","s2","s3");

echo "$arr[2]=$arr[2]";

echo "

";

arr[3]="s4";

$arr[]="s5";

print_r($arr);

?>

例子:對數組下標的分析

//構造數組

$key=8;

$arr=array(

1,

'abc',

'book'=>'PHP',

'33',

13=>'number',

'php'=>5.0,

$key=>'key',

'hello'

);

print_r($arr);

/**

* 需要注意的問題:根據輸出的結果Array ( [0] => 1 [1] => abc [book] => PHP [2] => 33 [13] => number [php] => 5 [8] => key [14] => hello )

* 我們可以分析出:

* 1.數組的下標是從0開始的

* 2.如果在數字下標後出現字符串下標,那麼並不會打亂數字下標的順序。如:[0] => 1 [1] => abc [book] => PHP [2] => 33 字符串下標book後仍爲數字下標2

* 3.如果在數組某元素出現自定義的數字下標,那麼會打亂之前的下標順序,之後會以當前自定義的下標作爲之後數字下標的排序依據。如:

* [2] => 33 [13] => number [php] => 5 [8] => key [14] => hello 數字下標2之後出現自定義的數字下標13,那麼hello自然爲14

* 請注意:14下標前的8爲什麼不會使hello的下標變成9呢?這是因爲8之前已經定義了大於8的下標13,所以以後只會以13爲依據了,除非將8變爲大於13的數字,則hello的下標

纔會以該數字爲依據!!!

*/

注意:當爲同名元素賦值時,只保留最後一次的定義。所有整數字符的鍵被看做整數。

例子:數組的注意

$arr=array("s1","s2","s3");

$arr[3]="ss";

$arr[3]="xx";

print_r($arr);//只保留$arr[3]="xx";

$arr['4']="www";

print_r($arr);//$arr['4']相當於$arr[4]

?>

對象(object)

現在的編程語言用到的方法有兩種:面向過程和麪向對象。在PHP中可以自由的使用這兩種方法。我們將在後續的課程中對面向對象的技術進行詳細介紹。

特殊數據類型

特殊數據類型包括兩種(資源和空值)

1.資源(resource)

又叫做“句柄”,是由專門的函數來建立和使用的。它是一種特殊的數據類型,並由程序員分配。在使用資源時,要及時地釋放不需要的資源。如果程序員忘記了釋放資源,系統自動啓動垃圾回收機制,避免內存消耗殆盡。

例子:打開文件形成的資源(隨開隨關)

//以只讀的方式打開文件

$fileOpen=fopen("","r");

//讀取文件的所有內容

$fileRead=fread($fileOpen,filesize(""));

//關閉打開的文件

fclose($fileOpen);

//輸出文件的內容

echo $fileRead;

?>

2.空值(null)

空值,顧名思義,表示沒有爲該變量設置任何值,另外,空值不區分大小寫,null和NULL效果是一樣的。被賦予空值的情況有以下3種。

? 還沒有賦任何值;

? 被賦值null

? 被unset()函數處理過的變量。

例子:空值實例

//空值實例

echo "變量($string1)直接賦值爲null";

$string1=null;

if ($string1==null)

{

echo "string=null";

}

//以上是字符串string1被賦值爲null,也會輸出null

echo "

變量($string2)未被賦值:";

if ($string2==null)

{

echo "string2=null";

}

//以上是字符串string2未被賦值和聲明,同樣輸出null

echo "

被unset()函數處理過的變量($string3):";

$string3="str";

unset($string3);

if ($string3==null)

{

echo "string3==null";

}

//以上是字符串string3雖然被賦予初值,但經過unset函數處理後,仍然輸出null

/**

* 總結:字符串string1被賦值爲null,string2根本沒有聲明和賦值,所以也輸出null, * 最後的string3雖然被賦予了初值,但被unset()函數處理後,也變爲null型。 * unset()函數的作用就是從內存中刪除變量。

*/

?>

本節重點

PHP數據類型的種類

標量數據類型、複合數據類型(就是多個簡單的數據類型組合在一起,存儲在一個變量中)和特殊數據類型

每種類型所包含的變量種類有哪些?

標量數據類型是數據結構中最基本單元,只能存儲一個數據。PHP中標量數據類型包括4種。

1.布爾型

2.字符串型(string)

3.整型(integer)

4.浮點型(float)

複合數據類型包括兩種(數組和對象)

1.數組(array)

2.對象(object)

特殊數據類型包括兩種(資源和空值)

1.資源

2.空值

各類變量的特點?

1.布爾型:布爾型是PHP中較爲常用的數據類型之一。它保存一個True或False值。其中True和False是PHP內部關鍵字。設定一個布爾型的變量,只需將True或False賦值給變量即可。通常布爾型變量都是應用在條件或循環語句的表達式中。

2.字符串是連續的字符序列,由數字、字母和符號組成。字符串的每個字符只佔有一個字節。在PHP中,定義字符串有3種方式。

? 單引號(?)

? 雙引號(“)

? 界定符(<<<)

3.整型數據類型只能包含整數。

4.浮點數據類型可以用來存儲數字,也可以保存小數。它提供的精度比整數大得多。

5.數組是一組數據的集合,它把一系列數據組織起來,形成一個可操作的整體。數組中可以包括很多數據:標量數據、數組、對象、資源,以及PHP中支持的其他語法結構等。數組中的每個數據稱爲一個元素,元素包括索引(鍵名)和值兩部分。元素的索引只能由數字或字符串組成。元素的值可以是多種數據類型。

6.對象(object) 現在的編程語言用到的方法有兩種:面向過程和麪向對象。

定義字符串有哪幾種方式?

定義字符串有3種方式。

? 單引號(?)

? 雙引號(“)

? 界定符(<<<)

哪些特殊符號需要轉義字符才能輸出?

? n 回車

? r 回車

? t 水平製表符

? 反斜槓

? $ 美元符號

? ? 單引號

? ” 雙引號

單引號和雙引號的區別?

1.雙引號中所包含的變量會自動被替換成實際數值,而在單引號中包含的變量則按普通字符串輸出。

2.兩者之間另一處的不同點是對轉義字符的使用

使用單引號時,只要對“?”進行轉義就可以了,但使用雙引號時,還要注意““”、”$“等字符的使用。這些特殊字符都要通過轉義符”“來顯示。

界定符(<<<)要遵循的規則?

1.標識符由字母、數字或下劃線構成。並且不能以數字開始。

2.結尾的標識符必須頂格書寫,其前不能有任何其他字符。

通常的錯誤是將結尾的定界標識符進行縮進。(也就是點擊了

鍵盤上的Table鍵)

整型數字在表達式中以什麼進制輸出?

十進制

定義數組的方法有哪幾種?

定義數組的語法格式如下:

$array=(“value1”,”value2”……);或

$array[key]=“value”;或

$array=(key1=>value1,key2=>value2……);

特殊數據類型有哪幾種?分別介紹一下?

特殊數據類型包括兩種(資源和空值) 1.資源(resource)

又叫做“句柄”,是由專門的函數來建立和使用的。它是一種特殊的數據類型,並由程序員分配。在使用資源時,要及時地釋放不需要的資源。如果程序員忘記了釋放資源,系統自動啓動垃圾回收機制,避免內存消耗殆盡。

2.空值(null)

空值,顧名思義,表示沒有爲該變量設置任何值,另外,空值不區分大小寫,null和NULL效果是一樣的。被賦予空值的情況有以下3種。

? 還沒有賦任何值;

? 被賦值null

? 被unset()函數處理過的變量。