php基礎(chǔ)

[if !supportLists]1.[endif]PHP基礎(chǔ)(變量的八種類型、emptyissetnull、變量類型的自動和強制轉(zhuǎn)換、常量、運算符(算術(shù)、比較、邏輯、三元運算符)

1.變量的八種類型

整型,字符串,浮點型,布爾型,數(shù)組,面向?qū)ο螅Y源,null

[if !supportLists]1.[endif]Empty

如果參數(shù)是非空或非零的值,則返回false,反之則為true。

emptytrue的情況

00.0“”空字符串“0”字符串零falsenullarray()空數(shù)組

沒有任何屬性的對象

2.

isset檢測變量是否設(shè)置

3.

unset釋放給定的變量

4.

null空變量

三種情況為null

1.直接賦值為null

2.被unset銷毀的變量

3.為被賦值的變量

2.變量類型的自動和強制轉(zhuǎn)換

1.自動轉(zhuǎn)換

1).布爾值true自動轉(zhuǎn)換1,false自動轉(zhuǎn)換為0或空

2). Null自動轉(zhuǎn)換0

3).如果字符串首字符不是數(shù)字,那么就轉(zhuǎn)換為0,再參與運算

2.強制類型轉(zhuǎn)換有三種方式

第一種方式(int)(float)(string)(bool)

第二種方式intval(變量)floatval(變量)strval(變量)

第三種方式settype(變量,變量類型);

3.常量

1.定義一次,就不能改變它的值

2.定義常量define('常量名(要大寫)',)

3.判斷常量是否被設(shè)置defined(‘常量名’)

4.運算符(算術(shù)、比較、邏輯、三元運算符)

1.算術(shù)運算符+-*/%++--

++$i前加加先自增再賦值

$i++后加加先賦值再加加

2.字符串連接符(.)

3.賦值運算符

把值賦給變量(=)

字符串拼裝的作用(.=)

4.比較運算符

等于( == )

全等于( === )不僅僅考慮值相等,變量的類型也要相等

5.邏輯運算符

邏輯或||or:符號兩邊只要有一邊為true,結(jié)果則為true

邏輯與&&and:符號兩邊都為true,結(jié)果才為true

邏輯非(取反)!

注:邏輯運算符短路問題

1).當(dāng)邏輯與&&判斷時,符號左邊如果為false,則不會繼續(xù)執(zhí)行符號右邊的

$a = 1;

if($a ==2 && $a++){

echo $a;//什么都沒有

}

echo $a;//輸出1

2).當(dāng)邏輯或||判斷時,符號左邊如果為true,則不會繼續(xù)執(zhí)行符號右邊的

$a = 1;

if($a == 1 || $a++){

echo $a;//輸出1

}

6.位運算符

1).按位與&兩邊都是1,結(jié)果才為1

$a = 10;// 01010

$b = 20;// 10100

//----------------------

//00000

echo $a&$b;//輸出0

2).按位或|兩邊都是0,結(jié)果才為0

$a = 10;//

01010

$b = 15;// 01111

//---------------------

//01111

echo $a|$b;//輸出15

7.三元運算符(? :

$a = '哇哈哈'

$str=($a=='哇哈哈')?'哇哈哈':'阿童木';

echo $str//輸出哇哈哈

注:三元運算符中不能加echo

2PHP語句(ifelseswitchwhiledo...whileforbreakcontinueexitdie)

1.單一分支結(jié)構(gòu)

If(滿足條件也就是轉(zhuǎn)化為bool型true){

//執(zhí)行大括號里的代碼塊

}

2.雙向條件分支結(jié)構(gòu)

if(empty($a)){//true執(zhí)行下面的代碼如果為false執(zhí)行else區(qū)間的代碼

echo '男';

}else{

echo '女';

}

3.switch開關(guān)的意思判斷字符串或者整型浮點型只能判斷是還是不是

$a = '3';

switch($a){

case '5':

echo '5';

break;//跳出代碼塊

case '6':

echo '6';//后不加break,會穿透執(zhí)行

break;

default://默認(rèn)選項當(dāng)前面的選項都不滿足的時候默認(rèn)執(zhí)行此代碼

echo '哇哈哈';

}

4.for循環(huán)(九九乘法表)

//正序的九九乘法表

for($i=1;$i<=9;$i++){//初始值0;范圍小于5;步長1;

for($j=1;$j<=$i;$j++){

echo $j.'x'.$i.'='.$i*$j."\t";//會輸出這樣格式的1x1=1等。。。

}

echo'
';

}

//倒序的九九乘法表

for($i=9;$i>0;$i--){

for($j=$i;$j>0;$j--){

echo$i.'x'.$j.'='.$i*$j."\t";//會輸出這樣格式的9x9=81等。。。

}

echo'
';

}

5.while只有條件滿足,才會執(zhí)行(九九乘法表)

//正序的九九乘法表

$i=1;

while($i<=9){//滿足小括號里的條件才會執(zhí)行代碼塊

$j=1;

while($j<=$i){

echo$j.'x'.$i.'='.$i*$j."\t";//會輸出這樣格式的1x1=1等。。。

$j++;

}

echo'
';

$i++;

}

//倒序的九九乘法表

$i=9;

while($i>0){

echo '
';

$j=$i;

while($j>0){

echo$i.'x'.$j.'='.$i*$j."\t";//會輸出這樣格式的9x9=81等。。。

$j--;

}

$i--;

}

6.do...while不管條件滿不滿足,先執(zhí)行一遍再說

$i=0;

do{//先執(zhí)行大括號里的代碼再說,再去判斷while滿不滿足滿足就繼續(xù)執(zhí)行不滿足,終止執(zhí)行

echo '阿薩姆';

}while($i>1);

7.breakcontinueexitdie

break滿足條件,終止執(zhí)行

continue跳過滿足的條件,繼續(xù)執(zhí)行

exit無條件終止執(zhí)行

die函數(shù)是exit函數(shù)的別名

3PHP函數(shù)(函數(shù)的聲明和調(diào)用、局部變量和全局變量、靜態(tài)變量、可變變量函數(shù)、回調(diào)函數(shù)、遞歸函數(shù))

1.函數(shù)的聲明和調(diào)用

函數(shù)完成一定功能按特定格式組織一段代碼,參數(shù)傳進(jìn)去值返回,相同的代碼可以聲明一次無限次調(diào)用。函數(shù)名不能重名,也不能和系統(tǒng)函數(shù)同名,命名規(guī)則遵循變量的命名規(guī)則。

函數(shù)的聲明function函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)3){//形參}

函數(shù)的調(diào)用函數(shù)名(//實參);

函數(shù)的返回值1.可以向函數(shù)調(diào)用者返回函數(shù)體中【任意確定】的值

2.退出函數(shù),也是終止執(zhí)行下面的函數(shù)

注:形參和實參的順序是對應(yīng),不可打亂,也不可少一或多一個。

2.局部變量和全局變量、靜態(tài)變量

[if !supportLists]1.[endif]局部變量

也叫內(nèi)部變量,僅限于函數(shù)內(nèi)部。離開function{

}外輸出會報注意【Notice】

[if !supportLists]2.[endif]全局變量

也叫外部變量,從變量定義處開始,到本程序文件的末尾

[if !supportLists]1.)[endif]global全局的意思,第一種【注意格式的不同】

$a=987654321;

functionalala( ){

global $a;

echo $a;

}

alala();//不用輸出$a

[if !supportLists]2.)[endif]$GLOBALS全局的意思第二種【注意格式的不同】

$b=654;

functioncaca( ){

$GLOBALS

['b'];//沒有$符

}

caca();

echo $b;//要輸出$b

3.靜態(tài)變量

函數(shù)里重復(fù)使用,不會被銷毀的,會有專門的一份內(nèi)存來保存變量,靜態(tài)的內(nèi)存

function jing( ){

static $a=6;

echo '——'.$a;

$a++;

}

jing();//輸出6,不是7(因為前++還是后++;都是從上至下執(zhí)行,都輸出6)

jing();//輸出7

jing();//輸出8

[if !supportLists]3.[endif]各種形式的php函數(shù)

[if !supportLists]1.[endif]賦值傳值

就相當(dāng)于復(fù)制文件,修改當(dāng)中一個文件,并不會影響它自身的內(nèi)容。

[if !supportLists]2.[endif]引用傳值

就相當(dāng)于創(chuàng)建快捷方式,修改其中一個,兩個都會改變,也屬于局部變量

function test(&$num){//使用引用變量,將一個&加到將要賦值的變量前

echo $num;

}

test(2);

[if !supportLists]3.[endif]可變參數(shù)的個數(shù)

function more_args(){//可變參數(shù)的個數(shù)

$args=func_get_args();//獲取函數(shù)的可變參數(shù),它是一個數(shù)組

for($i=0;$i

echo '第'.$i.'個參數(shù)是'.$args[$i].'
';//輸出第一個是one等。。。

}

}

more_args('one','two','three',1,2,3);

4.可變變量以一個變量的值作為另外一個變量的名

$a = 'hello';

$hello ='world';

$world ='perfect';

echo $$a;// world;

echo $$$a;// perfect

[if !supportLists]4.[endif]回調(diào)函數(shù)

回調(diào)函數(shù)不是由該函數(shù)的實現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時由另外的一方調(diào)用的,用于對該事件或條件進(jìn)行響應(yīng)

//程序是自上往下執(zhí)行一定要執(zhí)行完才會繼續(xù)

functionone(){

echo 'one';

two();

echo 'one';

}

functiontwo(){

echo 'two';

three();

echo 'two';

}

functionthree(){

echo 'three';

}

one();//輸出onetwothreetwoone

call_user_func()把第一個參數(shù)作為回調(diào)應(yīng)用

function wahaha($num){

echo'wahaha'.$num;//輸出wahaha4

}

call_user_func('wahaha',4);//也能執(zhí)行函數(shù)的調(diào)用間接調(diào)用

call_user_func_array(被調(diào)用的回調(diào)函數(shù),要被傳入回調(diào)函數(shù)的數(shù)組(索引數(shù)組))

調(diào)用回調(diào)函數(shù),并把一個數(shù)組參數(shù)作為回調(diào)函數(shù)的參數(shù)

[if !supportLists]5.[endif]遞歸函數(shù)

遞歸函數(shù),函數(shù)本身自己調(diào)用自己,任何語言都有,地位還比較重要,可遍歷文件夾、商品分類

1.階乘

function jiecheng($num){

if($num>1){

return$num*jiecheng($num-1);

}else{

return1;

}

}

echo jiecheng(5);//輸出120

//執(zhí)行順序

//return 5*jiecheng(4)

//5*4*jiecheng(3)

//5*4*3*jiecheng(2)

//5*4*3*2*jiecheng(1)

//5*4*3*2*1 = 120

2.斐波尼奇數(shù)列

function shulie($num){

if($num==1||$num==2){

return1;

}else{

returnshulie($num-1)+shulie($num-2);

}

}

//1123581321….

echo shulie(7);//輸出13

4、數(shù)組(數(shù)組的分類定義、遍歷數(shù)組的四種方式、預(yù)定義數(shù)組、常用的數(shù)組函數(shù)、冒泡算法)

數(shù)組的定義

1.索引數(shù)組:下標(biāo)是順序的整數(shù)作索引。


$array=array('a','b','c');

$array[]='simon';

print_r($array);

?>

[if !supportLists]2.[endif]關(guān)聯(lián)數(shù)組:下標(biāo)是字符串作索引。

$a=array(key1=>value1,key2=>value2,key3=>value3);

3.$a[key1]=value1;$a[key2]=value2;

4.通過中括號[ ]定義數(shù)組

$data= ['start_time'=> '123','end_time'=>'456'];

遍歷數(shù)組的四種方式

預(yù)定義數(shù)組

[if !supportLists]1.[endif]服務(wù)器變量$_SERVER$_SERVER是一個包含諸如頭信息、路徑和腳本位置的數(shù)組。數(shù)組的實體由web服務(wù)器創(chuàng)建,并不能保證所有的服務(wù)器都能產(chǎn)生所有的信息,服務(wù)器可能忽略了一些信息,或者產(chǎn)生了一些其他的新的信息。和其他的超全局?jǐn)?shù)組一樣,這是一個自動的全局變量,在所有的腳本中都有效,在函數(shù)或?qū)ο蟮姆椒ㄖ胁恍枰褂胓lobal關(guān)鍵字訪問它。

[if !supportLists]2.[endif]$_ENV環(huán)境變量:數(shù)組中的內(nèi)容是在PHP解析器運行時,從PHP所在服務(wù)器中的環(huán)境變量轉(zhuǎn)變?yōu)镻HP全局變量的。它們中許多都是由PHP所運行的系統(tǒng)決定的,完整的列表是不可能的,需要查看PHP所在服務(wù)器的系統(tǒng)文檔以確定其特定的環(huán)境變量。

[if !supportLists]3.[endif]URL GET變量:$_GET數(shù)組也是超全局變量數(shù)組,是通過URL GET方法傳遞的變量組成的數(shù)組。它屬于外部變量,即在服務(wù)器頁面中通過$_GET超全局?jǐn)?shù)據(jù)獲取URL或表單的GET方式傳遞過來的參數(shù)。

[if !supportLists]4.[endif]HTTP POST變量$_POST:數(shù)組是通過HTTP POST方法傳遞的變量組成的數(shù)組。$_POST和$_GET數(shù)組之一都可以保存表單提交的變量,使用哪一個數(shù)組取決于提交表單時在表單form標(biāo)記中的method屬性使用的方法是post還是get。但是使用$_POST數(shù)組只能訪問以post方法提交的表單數(shù)據(jù)。

[if !supportLists]5.[endif]HTTP文件上傳變量$FILES:使用表單的file輸入域上傳文件時,必須使用post提交。但在服務(wù)器文件中,并不能通過$_POST超全局?jǐn)?shù)組獲取到表單中file域的內(nèi)容。而$_FILES超全局變量是通過post方法傳遞的已上傳文件項目組成的數(shù)組。$_FILES是一個二維數(shù)組,包含5個子數(shù)組元素,其中第一個下標(biāo)是表單中file輸入域的名稱,第二個下標(biāo)用于描述上傳文件的屬性。

[if !supportLists]6.[endif]HTTPCOOKIES:$_COOKIE超全局?jǐn)?shù)組是經(jīng)由HTTP

Cookies方法提交至腳本的變量。通常這些Cookies是由以前執(zhí)行的PHP腳本通過setCookies()函數(shù)設(shè)置到客戶端瀏覽器中的,當(dāng)PHP腳本從客戶瀏覽器提取了一個cookie后,它將自動把它轉(zhuǎn)換成一個變量,可以通過這個$_COOKIE超全局?jǐn)?shù)組和cookie的名稱來存取指定的cookie值。

[if !supportLists]7.[endif]Session變量:會話控制是在服務(wù)器端使用session跟蹤用戶,當(dāng)服務(wù)器頁面中使用session_start()函數(shù)開啟session后,就可以使用$_SESSION數(shù)組注冊全局變量,用戶就可以在整個網(wǎng)站中訪問這些會員信息。

[if !supportLists]8.[endif]GLOBAL變量:$GLOBALS是由所有已定義的全局變量組成的數(shù)組,變量名就是該數(shù)組的索引。

常用的數(shù)組函數(shù)

見文檔

冒泡算法

/*冒泡算法

* @para $arr傳人進(jìn)去排序的數(shù)組

* @return $newArr排序之后的數(shù)組

*/

functionmaopao($arr){

//一共是多少趟

for($i=?count($arr)-1;?$i>0;?$i--){

$flag= 0;

//每一趟進(jìn)行相鄰兩個數(shù)進(jìn)行比較

for($j= 0;?$j<?$i;?$j++){

if($arr[$j]>$arr[$j+1]){

$temp=?$arr[$j];

$arr[$j]

=?$arr[$j+1];

$arr[$j+1]

=$temp;

$flag= 1;

}

}

if($flag== 0){

break;

}

}

return$arr;

}

$arr=array(30,40,10,50,20,60);

print_r(maopao($arr));

?>

5、字符串(字符串函數(shù))

見文檔

[if !supportLists]6.[endif]正則表達(dá)式

[if !supportLists]7.[endif]會話控制

[if !supportLists]8.[endif]文件(目錄和文件的操作、遍歷目錄、文件上傳、多文件上傳、下載)

[if !supportLists]9.[endif]GD庫、新分使輸銷、驗證碼

[if !supportLists]10.[endif]mysql數(shù)據(jù)庫(增刪改查、關(guān)聯(lián)查詢、php處理mysql的函數(shù))

[if !supportLists]11.[endif]項目登錄、注冊、商品、用戶、分頁功能

[if !supportLists]12.[endif]PHP面向?qū)ο蟆⒊S玫乃膫€類

[if !supportLists]13.[endif]Smarty

[if !supportLists]14.[endif]Pdo

[if !supportLists]15.[endif]異常處理

[if !supportLists]16.[endif]Mvc

[if !supportLists]17.[endif]Thinkphp3.1

[if !supportLists]18.[endif]Linux

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內(nèi)容

  • PHP 算數(shù)運算符 ";echo ($a-$b)." ";echo ($a*$b)." ";echo ($a/$b...
    久久歸移閱讀 528評論 0 0
  • break可以接受一個可選的數(shù)字參數(shù)來決定跳出幾重循環(huán),默認(rèn)是跳出一層循環(huán) (break;即break 1;)。注...
    Marnoon閱讀 223評論 0 0
  • PHP簡介 PHP(外文名:PHP: Hypertext Preprocessor,中文名:超文本預(yù)處理器,是一種...
    likeli閱讀 436評論 1 2
  • 1、電腦設(shè)置好有線網(wǎng)絡(luò)后,在設(shè)置里面確定一下所使用的有線網(wǎng)絡(luò)連接方式。系統(tǒng)偏好設(shè)置>網(wǎng)絡(luò)。就能看到網(wǎng)絡(luò)連接形式...
    lureiny閱讀 799評論 0 0
  • “勸君莫惜金縷衣,勸君惜取少年時。花開堪折直須折,莫待無花空折枝。” “絕代佳人難得,傾國,花下見無期。一...
    獨行俠木熙熙閱讀 441評論 1 4