php基礎(chǔ)

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

1.變量的八種類型

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

[if !supportLists]1.[endif]Empty

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

emptytrue的情況

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

沒有任何屬性的對(duì)象

2.

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

3.

unset釋放給定的變量

4.

null空變量

三種情況為null

1.直接賦值為null

2.被unset銷毀的變量

3.為被賦值的變量

2.變量類型的自動(dòng)和強(qiáng)制轉(zhuǎn)換

1.自動(dòng)轉(zhuǎn)換

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

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

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

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

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

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

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

3.常量

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

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

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

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

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

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

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

2.字符串連接符(.)

3.賦值運(yùn)算符

把值賦給變量(=)

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

4.比較運(yùn)算符

等于( == )

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

5.邏輯運(yùn)算符

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

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

邏輯非(取反)!

注:邏輯運(yùn)算符短路問題

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

$a = 1;

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

echo $a;//什么都沒有

}

echo $a;//輸出1

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

$a = 1;

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

echo $a;//輸出1

}

6.位運(yùn)算符

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.三元運(yùn)算符(? :

$a = '哇哈哈'

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

echo $str//輸出哇哈哈

注:三元運(yùn)算符中不能加echo

2PHP語句(ifelseswitchwhiledo...whileforbreakcontinueexitdie)

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

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

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

}

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

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

echo '男';

}else{

echo '女';

}

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

$a = '3';

switch($a){

case '5':

echo '5';

break;//跳出代碼塊

case '6':

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

break;

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

echo '哇哈哈';

}

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

//正序的九九乘法表

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

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

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

}

echo'
';

}

//倒序的九九乘法表

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

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

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

}

echo'
';

}

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

//正序的九九乘法表

$i=1;

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

$j=1;

while($j<=$i){

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

$j++;

}

echo'
';

$i++;

}

//倒序的九九乘法表

$i=9;

while($i>0){

echo '
';

$j=$i;

while($j>0){

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

$j--;

}

$i--;

}

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

$i=0;

do{//先執(zhí)行大括號(hào)里的代碼再說,再去判斷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í)參);

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

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

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

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

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

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

}外輸出會(huì)報(bào)注意【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ù)使用,不會(huì)被銷毀的,會(huì)有專門的一份內(nèi)存來保存變量,靜態(tài)的內(nèi)存

function jing( ){

static $a=6;

echo '——'.$a;

$a++;

}

jing();//輸出6,不是7(因?yàn)榍?+還是后++;都是從上至下執(zhí)行,都輸出6)

jing();//輸出7

jing();//輸出8

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

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

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

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

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

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

echo $num;

}

test(2);

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

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

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

for($i=0;$i

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

}

}

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

4.可變變量以一個(gè)變量的值作為另外一個(gè)變量的名

$a = 'hello';

$hello ='world';

$world ='perfect';

echo $$a;// world;

echo $$$a;// perfect

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

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

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

functionone(){

echo 'one';

two();

echo 'one';

}

functiontwo(){

echo 'two';

three();

echo 'two';

}

functionthree(){

echo 'three';

}

one();//輸出onetwothreetwoone

call_user_func()把第一個(gè)參數(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ù),并把一個(gè)數(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.通過中括號(hào)[ ]定義數(shù)組

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

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

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

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

[if !supportLists]2.[endif]$_ENV環(huán)境變量:數(shù)組中的內(nèi)容是在PHP解析器運(yùn)行時(shí),從PHP所在服務(wù)器中的環(huán)境變量轉(zhuǎn)變?yōu)镻HP全局變量的。它們中許多都是由PHP所運(yùn)行的系統(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ù)組之一都可以保存表單提交的變量,使用哪一個(gè)數(shù)組取決于提交表單時(shí)在表單form標(biāo)記中的method屬性使用的方法是post還是get。但是使用$_POST數(shù)組只能訪問以post方法提交的表單數(shù)據(jù)。

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

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

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

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

[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)行相鄰兩個(gè)數(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]會(huì)話控制

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

[if !supportLists]9.[endif]GD庫、新分使輸銷、驗(yàn)證碼

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

[if !supportLists]11.[endif]項(xiàng)目登錄、注冊(cè)、商品、用戶、分頁功能

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

[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)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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