PHP
簡介最初用于維護(hù)個人主頁,簡寫為:Personal HomePage
。
最后改為:Hypertext Preprocessor
(超文本預(yù)處理器),于1994年誕生。
優(yōu)勢
windows
/linux
/unix
)PHP 4
開始,目前完全支持面向?qū)ο骫PHP
源代碼都可以得到注:PHP
靈活,對程序員的約束太少,PHP
默認(rèn)是解釋運(yùn)行機(jī)制,所以很多問題在運(yùn)行階段才會發(fā)現(xiàn)。
B/S
結(jié)構(gòu)和C/S
結(jié)構(gòu)
B/S
:Browser-Server
,瀏覽器-服務(wù)器,通過瀏覽器訪問,都可以看作B/S
C/S
:Client-Server
,客戶端-服務(wù)器,通過客戶端訪問,比如QQ
,微信PHP
基礎(chǔ)語法開始標(biāo)記和結(jié)束標(biāo)記
PHP
開始和停止解析二者之間的代碼,這使得PHP
可以被嵌入到各種不同的文檔中去。PHP
代碼,最好在文件末尾刪除PHP
結(jié)束標(biāo)記。指令分隔符
//指令分隔符:php和其他編程語言一樣,在每個語句后用分號';'結(jié)束指令,一段PHP代碼中的結(jié)束標(biāo)記隱含一個分號,所以在一個PHP代碼段中的最后一行可以不用分號結(jié)束。 echo 'hello, world'."\n";
注釋
//單行注釋:// #//多行注釋: /* */echo "你好"."\n"; //單行注釋echo "你也好"."\n"; #單行注釋/* * 多行注釋 */echo "大家都好"."\n";
由一個美元符號$
后面跟變量名來表示(變量名區(qū)分大小寫)。
和其他編程語言一樣,一個有效的變量名由字符或者下劃線開頭,后面跟上任意數(shù)量的字符、數(shù)字或者下劃線(也可中文)。
$this
是個特殊的變量,不能被賦值。
//使用變量之前必須定義并進(jìn)行賦值$a; //定義后不賦值直接使用會報錯:Undefined variableecho $a;//變量名區(qū)分大小寫$var = "Bob";$Var = "Tom";echo $var."和".$Var."\n";
傳值賦值和引用賦值
/* * 傳值賦值:當(dāng)一個變量的值賦予另外一個變量的時候,改變其中一個變量的值,將不會影響到另外一個變量。 * 引用賦值:新變量指向了原始變量,改動新的變量將影響到原始變量,反之亦然。(只有由名字的變量才能引用賦值,比如表達(dá)式就不可以) */$a = "Bob";$b = $a; //傳值賦值$b = 10;echo "a:".$a."\tb:".$b."\n";$c = &$a; //引用賦值$c = 20;echo "a:".$a."\tc:".$c."\n";
全局變量
/* * php * 在C語言中全局變量在函數(shù)中會自動生效,除非被局部變量覆蓋。 * php中全局變量在函數(shù)中使用時必須聲明為global * $GLOBALS是一個關(guān)聯(lián)數(shù)組,每一個變量為一個元素,鍵名對應(yīng)對變量,值對應(yīng)變量內(nèi)容。 */$a = 1;$b = 2;function Sum(){ echo "a:".$a."\tb:".$b; //不會有任何輸出 //方法一:使用global標(biāo)識全局變量 global $a, $b; echo "a + b = ".($a + $b)."\n"; //方法二:使用$GLOBALS替代 echo "a + b = ".($GLOBALS['a'] + $GLOBALS['b'])."\n";}Sum();
靜態(tài)變量
/* * 靜態(tài)變量僅在局部函數(shù)域中存在,但當(dāng)程序執(zhí)行離開此作用域時,其值并不丟失。 *///每次調(diào)用,$a都會重新定義賦初值,$b在編譯期間初始化,以后不會重新定義。function Test1(){ $a = 0; static $b = 0; static $c = 1+2; echo "a=".$a."\t"."b=".$b."\n"; $a++; $b++;}for ($i = 0; $i < 10; $i ++){ Test1();}
可變變量
/* * 可變變量:一個變量的變量名可以動態(tài)設(shè)置和使用。 */$a = 'hello';$$a = "world"; //一個可變變量獲取了一個普通變量的值作為這個可變變量的變量名echo "$a ${$a}"."\n";echo "$a $hello"."\n";
一旦被定義,就不能再改變或者取消定義
常量只能包含boolean
,integer
,float
,string
常量和變量有如下不同:
$
;define()
函數(shù)定義,而不能通過賦值語句;常量的定義php5.3.0
后,除了使用函數(shù)define()
之外,還可以使用關(guān)鍵字const
來定義常量。
const
和define()
的區(qū)別:
php5.3.0
后才能使用const
關(guān)鍵字,define()
函數(shù)對所有版本兼容define()
函數(shù)定義的常量是在執(zhí)行define()
函數(shù)時定義的,可以在任何位置定義,無論是函數(shù)內(nèi)或函數(shù)外const
關(guān)鍵字定義的常量是編譯時定義的,所以定義的時候必須處于最頂端的作用區(qū)域,不能在函數(shù)內(nèi)部const
關(guān)鍵字定義的常量值的表達(dá)式中不支持運(yùn)算符,define()
函數(shù)可以支持注意:使用const
關(guān)鍵字定義常量必須處于最頂端的作用區(qū)域。因?yàn)橛么朔椒ㄊ窃诰幾g時定義的,這就意味著不能在函數(shù)內(nèi),循環(huán)體內(nèi)用const
來定義常量。
define("A", "Hello, world");echo "A = ".A."\n"; const B = "你好";echo "B = ".B."\n";
魔術(shù)常量
__LINE__
:文件中的當(dāng)前行號__FILE__
:文件的完整路徑和文件名__DIR__
:文件所在的目錄__FUNCTION__
:函數(shù)名稱__CLASS__
:類的名稱__TRAIT__
:Trait
的名字,包括其被聲明的作用區(qū)域__METHOD__
:類的方法名__NAMESPACE__
:當(dāng)前命名空間的名稱
聯(lián)系客服