不管多麼險峻的高山,總是為不畏艱難的人留下一條攀登的路。以下是小編為大家搜尋整理了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()函式處理過的變數。