第2章 PHP基礎(語法、數據類型、控制語句及練習題、答案)_第1頁
第2章 PHP基礎(語法、數據類型、控制語句及練習題、答案)_第2頁
第2章 PHP基礎(語法、數據類型、控制語句及練習題、答案)_第3頁
第2章 PHP基礎(語法、數據類型、控制語句及練習題、答案)_第4頁
第2章 PHP基礎(語法、數據類型、控制語句及練習題、答案)_第5頁
已閱讀5頁,還剩111頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

php網站開發基礎應用技術學院任課教師:第2章PHP基礎知識本節課學習要點 1.掌握PHP代碼基本語法 2.掌握基本的編碼規范 3.熟練PHP程序的組成、基本格式與輸出語句32024年3月3日2024年3月3日32.1PHP語法基礎2.1.1PHP標記風格Web服務器通過標記識別PHP代碼的開始和結束,標記之間的所有文本都被解釋為PHP語句,標記之外的文本被認為是HTML語句。標準的PHP標記風格如下:<?php

……?>42024年3月3日2024年3月3日42.1PHP語法基礎2.1.2PHP程序注釋PHP支持3種風格的程序注釋(注釋中不要出現PHP標記符號)。1、單行注釋

以“//”開始的注釋2、多行注釋

包含在“/*”

和“*/”之間的注釋3、shell風格的注釋

以“#”開始的注釋52024年3月3日2024年3月3日52.1PHP語法基礎例2-13種注釋<?php echo"單行注釋"; //輸出字符串

/*

注釋內容

不被輸出 */ echo"多行注釋";

echo"shell風格注釋"; #看不到注釋?>62024年3月3日2024年3月3日62.2PHP數據類型PHP支持8種原始類型:4種標量類型:boolean(布爾型)、string(字符串)、integer(整型)、float/double(浮點型);2種復合類型:array(數組)、object(對象);2種特殊類型:resource(資源)、NULL(空)。72024年3月3日2024年3月3日72.2PHP數據類型2.2.1標量數據類型1、布爾型(boolean)布爾型是PHP中常用的數據類型,通常用于條件表達式或循環表達式中,其值為true或false。例2-2布爾型數據運行結果:變量$a的值為true<?php $a=true; if($a==true) echo'變量$a的值為true'; else echo'變量$a的值為false';?>82024年3月3日2024年3月3日82.2PHP數據類型2、字符串型(string)字符串由數字、字母和符號組成。字符串中的每一個字符占1個字節。字符串有3種定義形式:單引號(‘),雙引號(“),界定符(<<<)。PHP中用“.”來連接字符串或字符串變量。92024年3月3日2024年3月3日92.2PHP數據類型區別:單引號包含的變量按普遍字符輸出。雙引號包含的變量按其實際值輸出。例2-3單、雙引號字符串對比輸出運行結果:變量$s的值是:ABC123<?php $s="ABC123"; echo'變量$s的值是:'."$s";?>102024年3月3日2024年3月3日102.2PHP數據類型界定符字符串定義格式 $變量名=<<<開始界定符

單行或多行字符串結束界定符注意:結束界定符必須另起一行且在行首,前面不許有空格及其他字符。112024年3月3日2024年3月3日112.2PHP數據類型例2-4界定符字符串定義及輸出<?php

$str=<<<JDF 'ok',"hello" <br> IwillJDF; echo"$str";?><?php $i='顯示該行內容'; echo<<<std

這和雙引號沒有什么區別,\$i同樣可以被輸出。<p> \$i的內容為:$istd;?>運行結果:'ok',"hello"Iwill運行結果:這和雙引號沒有什么區別,$i同樣可以被輸出。$i的內容為:顯示該行內容122024年3月3日2024年3月3日122.2PHP數據類型字符串中的字符也可以用數組索引的形式來表示。例2-5字符串中字符以數組元素形式輸出運行結果:<?php $s="ABC123"; echo'變量$s[2]的值是:'."$s[2]";?>132024年3月3日2024年3月3日132.2PHP數據類型3、整型(integer)整型類型只包含整數。整數可以用十進制、八進制、十六進制表示,有效范圍是:(-2147483648,+2147483647)。如果在八進制中出現非法數字(8和9),則非法數字及其后面的數字被忽略。142024年3月3日2024年3月3日142.2PHP數據類型例2-6整數不同進制形式輸出<?php $str1=1234567890; $str2=01234567890; $str3=01234567; $str4=0x1234567890; echo'數字1234567890不同進制的輸出結果:<p>'; echo'10進制的結果是:'.$str1.'<br>'; echo'8進制的結果是:'; if($str2==$str3){ echo'$str2=$str3='.$str2; }else{ echo'$str2='.$str2.'與$str3='.$str3.'結果不同'; } echo'<br>'; echo'16進制的結果是:'.$str4;?>運行結果:152024年3月3日2024年3月3日152.2PHP數據類型4、浮點型(float/double)浮點數據類型用來保存小數。PHP4以前版本中,浮點型的標示為double,PHP4以后改為float。doub與float沒有區別。浮點型數據書寫格式:標準格式:3.14,-0.257科學計數格式:314E-2,-2.57E1162024年3月3日2024年3月3日162.2PHP數據類型2.2.2復合數據類型1、數組(array)一組數據集合,形成一個可操作數據體。數組中每個數據稱為一個元素,元素包含索引和值兩個屬性。元素索引:由數字或字符串組成元素值:可以是任意數據類型的數據2、對象(object)通過new運算得到一個類的對象。172024年3月3日2024年3月3日172.2PHP數據類型2.2.3特殊數據類型1、資源(resource)資源是一種特殊變量,又叫句柄,保存到外部資源的一個引用。例如:同時有多個數據庫連接存在時,要進行查詢和關閉連接等操作,必須指明某個操作是對應哪個連接的。因此給每個連接賦予一個標識值,一般是整數,這種標識值的數據類型稱為資源型。182024年3月3日2024年3月3日182.2PHP數據類型2、空值(NULL)表示沒有為變量設置任何值。NULL類型唯一的值就是“NULL”。在下列情況時一個變量的值是NULL:被賦值為NULL;

尚未被賦值;

被執行unset()方法。

192024年3月3日2024年3月3日192.2PHP數據類型2.2.4數據類型轉換PHP在變量定義方面比較自由,因此PHP被稱為弱類型語言,也稱為動態語言。PHP數據類型轉換有3種方式:1.自動轉換(運算符);2.強制轉換;3.setType()方法轉換。202024年3月3日2024年3月3日202.2PHP數據類型1.自動轉換定義變量時不需指定數據類型,PHP會根據具體引用變量的具體應用環境,將變量轉換為合適的數據類型。例2-7自動轉換<?php echo2+'10個人'; echo'<br>'; echo1+'經驗';?>運行結果:212024年3月3日2024年3月3日212.2PHP數據類型2.強制轉換將某個類型的數據強制轉換為括號內指定類型的數據。轉換目標類型轉

規則轉換示例(integer)將其他數據類型強制轉換為整型$a="3";$b=(integer)$a;(boolean)將其他數據類型強制轉換為布爾型$a="3";$b=(boolean)$a;(float),(double)將其他數據類型強制轉換為浮點型$a="3";$b=(float)$a;$c=(double)$a;(string)將其他數據類型強制轉換為字符串$a=3;$b=(string)$a;(array)將其他數據類型強制轉換為數組$a="3";$b=(array)$a;(object)將其他數據類型強制轉換為對象$a="3";$b=(object)$a;222024年3月3日2024年3月3日222.2PHP數據類型A.強制轉換為整型的轉換規則目

型原

型轉

則轉換示例整型布爾型TRUE轉換為1$a=true;$b=(integer)$a;則$b的值為1FALSE轉換為0$a=false;

$b=(integer)$a;則$b的值為0浮點型向下取整,只保留整數部分$a=125.65;

$b=(integer)$a;則$b的值為125字符串型字符串為純整型數字轉換成相應的整型數字$a="023";

$b=(integer)$a;則$b的值為23字符串為帶小數點數字去除小數點后面部分,保留整數部分$a="12.4";

$b=(integer)$a;則$b的值為12字符串以整型數字開頭去除整型數字后面部分,然后轉換成相應的整型數字$a="19a這5";

$b=(integer)$a;則$b的值為19字符串以帶小數點數字開頭去除小數后面部分,然后轉換成相應的整型數字$a="3.1a這1";

$b=(integer)$a;則$b的值為3字符串內容以非數字開頭轉換為0$a="字this";

$b=(integer)$a;則$b的值為0232024年3月3日2024年3月3日232.2PHP數據類型B.強制轉換為浮點型的轉換規則注:某些運算雖然結果看上去是整型,但實際是浮點型。目

型原

型轉

則轉換示例浮點型整型將整型數據直接轉換為浮點型,數值保持不變$a=78;$b=(float)$a;則$b的值為78布爾型TRUE轉換成1(浮點型)$a=true;$b=(float)$a;則$b的值為1FALSE轉換成0(浮點型)$a=false;$b=(float)$a;則$b的值為0字符串字符串為整型數字轉換成相應的浮點型數字$a="023";$b=(float)$a;則$b的值為23字符串以數字開頭去除數字后面部分,然后轉換成相應的浮點型數字$a="19a這5";$b=(float)$a;則$b的值為19字符串以帶小數點數字開頭只保留數字部分,然后轉換成相應的浮點型數字$a="3.1a這1";$b=(float)$a;則$b的值為3.1字符串以非數字內容開頭轉換成0(浮點型)$a="字is5.0";$b=(float)$a;則$b的值為0242024年3月3日2024年3月3日242.2PHP數據類型C.強制轉換為布爾型的轉換規則目

型原

型轉

則轉換示例布爾型整型整型數字0

轉換為FALSE$a=0;$b=(boolean)$a;則$b的值為false非零的其他整型數字轉換為

TRUE$a=98;$b=(boolean)$a;則$b的值為true浮點型整型數字0轉換為FALSE$a=0.0;$b=(boolean)$a;則$b的值為false非零的其他浮點型數字轉換為

TRUE$a=5.5;$b=(boolean)$a;則$b的值為true字符串空字符串轉換為FALSE$a="";$b=(boolean)$a;則$b的值為false字符串內容為零轉換為FALSE$a="0";$b=(boolean)$a;則$b的值為false其他字符串轉換為

TRUE$a="字is5.0";$b=(boolean)$a;則$b的值為trueNULL轉換為FALSE$a=null;

$b=(boolean)$a;則$b的值為false數組空數組轉換為FALSE$a=array();$b=(boolean)$a;則$b的值為false非空數組轉換為

TRUE$a=array(1,2);$b=(boolean)$a;則$b的值為true252024年3月3日2024年3月3日252.2PHP數據類型D.強制轉換為數組的轉換規則目

型原

型轉

則轉換示例數組整型轉換為數組時,數組只包含一個數據元素,就是未轉換前的數據,并且數據類型與未轉換前相同$a=-75;$b=(array)$a;則$b的值為-75$a=1.5e-1;

$b=(array)$a;則$b的值為0.15浮點型$a=true;

$b=(array)$a;則$b的值為true布爾型TRUE$a=false;$b=(array)$a;則$b的值為falseFALSE$a="轉為數組";$b=(array)$a;則$b的值為"轉為數組"字符串對象轉換時將對象的成員變量的名稱作為各數組元素的

key

如果成員變量為私有的(

private

),轉換后

key

的名稱為“類名

+

成員變量名”;

如果成員變量為公有的(

public

),轉換后

key

的名稱為成員變量名;

如果成員變量為受保護的(

protected

),轉換后

key的名稱為“

*+

成員變量名”classTest{

private$m;

public$n;

protected$p;

publicfunction__construct($m,$n,$p){

$this->m=$m;

$this->n=$n;

$this->p=$p;

}

}

$a=newTest(15,"test",0.19);$b=(array)$a;則$b["\0Test\0m"]=15;$b[n]="test";$b["\0*\0p"]=0.19;NULL直接轉換為一個空數組$a=null;$b=(array)$a;則$b的值為NULL262024年3月3日2024年3月3日262.2PHP數據類型E.強制轉換為對象的轉換規則目

型原

型轉

則轉換示例對象整型將其他類型變量轉換為對象時,將會新建一個名為“

scalar

”的屬性,并將原變量的值存儲在這個屬性中$a=-75;

$b=(object)$a;則$b->scalar的值為-75浮點型$a=1.5e-1;

$b=(object)$a;則$b->scalar的值為0.15布爾型TRUE$a=true;

$b=(object)$a;則$b->scalar的值為trueFALSE$a=false;

$b=(object)$a;則$b->scalar的值為false字符串$a="轉為對象";

$b=(object)$a;則$b->scalar的值為"轉為對象"數組將數組轉換為對象時,數組的

key

作為對象成員變量的名稱;對應各個

key

value

作為對象成員變量保存的值$a=array('first'=>"數組1",'second'=>"數組2");$b=(object)$a;則$b->first的值為"數組1",$b->second的值為"數組2",NULL直接轉換為一個空對象$a=null;

$b=(object)$a;則$b為空對象272024年3月3日2024年3月3日272.2PHP數據類型F.強制轉換為字符串型的轉換規則目

型原

型轉

則轉換示例字符串整型轉換時直接在整型數據兩邊加上雙引號作為轉換后的結果$a=-75;

$b=(string)$a;則$b的值為"-75"浮點型轉換時直接在浮點型數據兩邊加上雙引號作為轉換后的結果$a=1.5e-1;

$b=(string)$a;則$b的值為"0.15"布爾型TRUETRUE

轉換為字符串“

1

$a=true;

$b=(string)$a;則$b的值為"1"FALSEFALSE

轉換為字符串“

0

”$a=false;$b=(string)$a;則$b的值為"0"數組直接轉換為字符串“

Array

”$a=array('first'=>"數組1",'second'=>"數組2");$b=(string)$a;則$b的值為"Array"NULL直接轉換為空字符串$a=null;$b=(string)$a;則$b的值為""282024年3月3日2024年3月3日282.2PHP數據類型3.setType()方法轉換setType()方法將指定的變量轉換成指定的數據類型。語法:setType(要轉換的變量名,目標數據類型)292024年3月3日2024年3月3日292.2PHP數據類型例2-8setType()方法轉換<?php$num='3.141592r*r';echo'使用(integer)操作符強制轉換變量$num的數據類型,(integer)$num的值是:';echo(integer)$num;echo'<p>';echo'強制轉換后變量$num的值是:'.$num;echo'<p>';echo'使用setType()方法轉換變量$num的數據類型,settype($num,'.'integer'.')的值是:';echosettype($num,'integer');echo'<p>';echo'setType()方法轉換后變量$num的值'.$num;?>運行結果:302024年3月3日2024年3月3日302.3PHP常量及其應用2.3.1常量聲明常量名由字母、數字、下劃線組成,首字符不能是數字。常量聲明語法:define(常量名,常量值,大小寫敏感參數)說明:

聲明時,常量名和常量值必須給出大小寫敏感參數的值為邏輯值,默認為false,表示大小寫敏感;若值為true,則表示大小寫不敏感。312024年3月3日2024年3月3日312.2PHP數據類型例2-9常量聲明的大小寫敏感參數<?phpdefine("Mage1","abc",true);echo'<p>';echomage1;define("Mage2","abc");echo'<p>';echomage2;?>運行結果:322024年3月3日2024年3月3日322.3PHP常量及其應用2.3.2使用常量常量可賦給某個變量,通過變量來使用常量;也可以直接通過常量名使用該常量。通過變量獲取常量值語法$變量名=‘常量名’constant($變量名)332024年3月3日2024年3月3日332.2PHP數據類型例2-10獲取常量值<?phpdefine("CCUT","長春工業大學");echo'通過常量名獲得的常量CCUT的值是:'.CCUT;echo'<p>';$name='CCUT';echo'通過變量獲得的常量CCUT的值是:'.constant($name);?>運行結果:342024年3月3日2024年3月3日342.3PHP常量及其應用2.3.3系統預定義常量PHP可通過系統預先定義的常量獲取相關信息(系統常量見教材P20)。例2-11系統常量<?phpecho"當前文件路徑是:".__FILE__;echo"<br>當前行數是:".__LINE__;echo"<br>當前PHP版本信息是:".PHP_VERSION;echo"<br>當前操作系統核心版本是:".PHP_OS;?>運行結果:352024年3月3日2024年3月3日352.4PHP變量及其應用2.4.1變量名稱

變量名稱遵循以下規定:(1)變量名必須以美元符號$開始;(2)變量名開頭可以以下劃線開始;(3)變量名不能以數字字符開頭;(4)PHP的變量名區分大小寫;362024年3月3日2024年3月3日362.4PHP變量及其應用2.4.2變量賦值1、直接賦值PHP中定義變量時不需要指定變量的類型,系統會根據變量的值決定其類型。

通過賦值運算符為變量直接賦值。

如果定義變量時沒有為變量賦初值,那么在使用變量時,系統會根據變量在語句中所處的位置確定其類型,并為該變量賦一個與其類型匹配的默認值。字符串類型的初值為空值,整型類型的初值為0;布爾型的初值為false。372024年3月3日2024年3月3日372.3PHP常量及其應用例2-12變量默認初始值示例<?php$num1+=1;echo'$num1的初始默認值是'.($num1-1);if($boo2){ echo'<br>$boo2的默認初始值是true';}else{ echo'<br>$boo2的默認初始值是false';}?>運行結果:382024年3月3日2024年3月3日382.4PHP變量及其應用2、變量間賦值

當變量1定義并賦值后,將變量1賦給變量2稱為變量間賦值。賦值后,兩個變量使用各自的內存,互不干擾。語法格式: $變量2=$變量1392024年3月3日2024年3月3日392.4PHP變量及其應用例2-13變量間賦值示例<?php$str1="應用技術學院";$str2=$str1;$str1="長春工業大學";echo$str1;echo"<br>";echo$str2;?>運行結果:402024年3月3日2024年3月3日402.4PHP變量及其應用3、引用賦值

引用賦值是指通過“&”符號實現不同變量名訪問同一個變量空間。改變一個變量的值,另一個變量值也改變。語法格式: $變量2=&$變量1412024年3月3日2024年3月3日412.4PHP變量及其應用例2-14引用賦值示例<?php$str1='應用技術學院';$str2=&$str1;echo'改變前的$str1的值是:'."$str1";echo'<br>改變前的$str1的值是:'."$str2";$str1='長春工業大學';echo'<br>改變后的$str1的值是:'."$str1";echo'<br>改變后的$str1的值是:'."$str2";?>運行結果:422024年3月3日2024年3月3日422.4PHP變量及其應用2.4.3可變變量一個變量的值作為另一個變量的名稱,這種形式稱為可變變量。可變變量通過在一個變量名前使用兩個“$”符號實現語法格式: $變量2=$$變量1432024年3月3日2024年3月3日432.4PHP變量及其應用例2-15可變變量賦值示例<?php$str1='Welcome';$Welcome='toChina!';echo$str1;echo$$str1;?>運行結果:442024年3月3日2024年3月3日442.5PHP運算符運算符php運算符包括算術運算符、比較運算符、條件運算符、字符串運算符、賦值運算符、位運算符、遞增運算符或遞減運算符等。452024年3月3日2024年3月3日452.5PHP運算符2.5.1算術運算符1、除(/):多數情況下結果為浮點數。特例:當兩個操作數都是整數(或字符串轉換成的整數)并且正好能整除時,得到的結果是整數。2、取模(%):當被除數是負數時,得到的結果是負數。462024年3月3日2024年3月3日462.5PHP運算符2.5.1算術運算符操作符說明示例+加法運算$a=-30;$b=25;則$c=$a+$b的值為-5-減法運算$a=15;

$b=-5;則$c=$a-$b的值為20*乘法運算$a=2;

$b=6;

則$c=$a*$b的值為12/除法運算$a=10;

$b=2;

則$c=$a/$b的值為5$a=10;

$b=-2;則$c=$a/$b的值為-5$a=-10;$b=2;

則$c=$a/$b的值為-5%取模運算$a=21;

$b=4;

則$c=$a%$b的值為1$a=-21;$b=4;

則$c=$a%$b的值為-1$a=21;

$b=-4;

則$c=$a%$b的值為1472024年3月3日2024年3月3日472.5PHP運算符2.5.2比較運算符1、==和!=只考慮數值是否相同,不考慮數據類型2、===和!==既考慮數值是否相同,也考慮數據類型是否相同操作符說明示例<大于$a="abc";$b=5;

則$c=$a<$b的值為true>小于$a=15;

$b=20;

則$c=$a>$b的值為false<=小于等于$a=2;$b=6;

則$c=$a<=$b的值為true>=大于等于$a=10;

$b=2;

則$c=$a>=$b的值為true==等于$a=4.0;

$b=4;

則$c=$a==$b的值為true!=不等于$a=0;

$b="abc";則$c=$a!=$b的值為false===恒等于$a=4.0;

$b=4;

則$c=$a===$b的值為false!==不恒等于$a=0;$b="abc";則$c=$a!==$b的值為true482024年3月3日2024年3月3日482.5PHP運算符2.5.3條件運算符條件運算符不用于兩個語句或程序的選擇,一般用于根據一個表達式在另外兩個表達式中選一個。通常將條件表達式放在括號內。語法

表達式1?表達式2:表達式3規則

當表達式1為真時,執行表達式2,否則執行表達式3492024年3月3日2024年3月3日492.5PHP運算符2.5.4字符串運算符PHP程序中的字符串運算符是“.”,起作用是將前后兩個字符串連接為一個新字符串。注意:“+”在PHP中并不是字符串連接運算符502024年3月3日2024年3月3日502.5PHP運算符2.5.5賦值運算符操作符說明示例=將右邊表達式的值賦給左邊表達式$a=3;$b=$a;則$b的值為3+=將左邊變量的值加上右邊表達式的值后再賦給左邊變量$a=3;$b=1;$b+=$a;則$b的值為4-=將左邊變量的值減去右邊表達式的值后再賦給左邊變量$a=3;$b=1;$b-=$a;則$b的值為-2*=將左邊變量的值乘以右邊表達式的值后再賦給左邊變量$a=3;$b=1;$b*=$a;則$b的值為3/=將左邊變量的值除以右邊表達式的值后再賦給左邊變量$a=3;$b=1;$b/=$a;則$b的值為0.33333333.=將右邊表達式的值附加在左邊變量值后面構成新字符串后再賦給左邊變量$a="newstring!";$b=1;$b.=$a;則$b的值為1newstring!%=將左邊變量的值除以右邊表達式的值取余數,把余數賦給左邊變量$a=3;$b=1;$b%=$a;則$b的值為1512024年3月3日2024年3月3日512.5PHP運算符2.5.6自增、自減運算符操作符位置說明示例++位于變量前面變量值先加1,然后用該變量的新值參與計算$a=3;$b=1;$c=(++$a)+$b;則$c的值為5;$a的值為4++位于變量后面用變量原值參與計算,然后該變量值加1$a=3;$b=1;$c=($a++)+$b;則$c的值為4;$a的值為4--位于變量前面變量值先減1,然后用該變量的新值參與計算$a=3;$b=1;$c=(--$a)+$b;則$c的值為3;$a的值為2--位于變量后面用變量原值參與計算,然后該變量值減1$a=3;$b=1;$c=($a--)+$b;則$c的值為4;$a的值為2522024年3月3日2024年3月3日522.5PHP運算符2.5.7位運算符操作符說明規則示例&按位與兩個操作數對應位都是1的位設為1,其余為0$a=1;$b=2;$c=$a&$b;則$c的值為0|按位或兩個操作數對應位有一個為1的位設為1,其余為0$a=1;$b=2;$c=$a|$b;則$c的值為3^按位異或兩個操作數相同為0,不同為0$a=3;$b=2;$c=$a^$b;則$c的值為1~按位取反將操作數中為0的位設為1,為1的位設為0$a=4;$b=2;$c=~$a;則$c的值為-5<<左移將左邊操作數中的位向左移動右邊操作數次(每一次移動都表示“乘以2”)$a=5;$b=2;$c=$a<<$b;則$c的值為20>>右移將左邊操作數中的位向右移動右邊操作數次(每一次移動都表示“除以2”)$a=6;$b=2;$c=$a>>$b;則$c的值為1532024年3月3日2024年3月3日532.5PHP運算符2.5.8邏輯運算符操作符說明示例&&邏輯與

只有當兩個操作數都為真時,結果為真$a=true;$b=true;則$c=$a&&$b的值為true$a=true;$b=false;則$c=$a&&$b的值為falseand$a=true;$b=false;

則$c=($aand$b)的值為false$a=false;$b=false;

則$c=$aand$b的值為false||邏輯或

只要兩個操作數有一個為真,結果為真$a=false;$b=false;

則$c=$a||$b的值為false$a=true;$b=false;

則$c=$a||$b的值為trueor$a=true;$b=true;

則$c=$aor$b的值為true$a=true;$b=false;

則$c=$aor$b的值為truexor邏輯異或

當兩個操作數的值一真一假時,結果為真$a=true;$b=true;

則$c=($axor$b)的值為false$a=true;$b=false;

則$c=$axor$b的值為true!邏輯非

結果為操作數的邏輯反值$a=true;

則$c=!$a的值為false$a=false;

則$c=!$a的值為true542024年3月3日2024年3月3日542.3PHP常量及其應用例2-12_1邏輯運算符優先級<?php$a1=true;$b1=false;$c1=$a1and$b1;echo'<br>$c1的值是'; var_dump($c1);?>運行結果:$c1的值是true原因:1、“=”的優先級高于“and”,因此先把$a1的值賦給$c1,此時$c1的值是true;然后再用$c1和$b1做“and”

運算。2、先計算$a2and$b2,值為false,然后把該值賦給$c2;因此$c2的值是false<?php$a2=true;$b2=false;$c2=($a2and$b2);echo‘<br>$c2的值是'; var_dump($c2);?>運行結果:$c2的值是false552024年3月3日2024年3月3日552.3PHP常量及其應用例2-12_2邏輯運算符優先級<?php$a1=true;$b1=true;$c1=$a1xor$b1;echo'<br>$c1的值是'; var_dump($c1);//輸出帶有數據類型的變量值?>運行結果:原因:1、“=”的優先級高于“xor”,因此先把$a1的值賦給$c1,此時$c1的值是true;然后再用$c1和$b1做“xor”

運算。2、先計算$a2xor$b2,值為false,然后把該值賦給$c2;因此$c2的值是false<?php$a2=true;$b2=true;$c2=($a2xor$b2);echo‘<br>$c2的值是'; var_dump($c2);?>運行結果:562024年3月3日2024年3月3日562.3PHP常量及其應用練習:1、已知三個數10,18,6,寫出程序求出3個數的最大值。2、已知長和寬分別是8和6,計算長方形的面積。2、嘗試說出下列代碼的運行結果。constA=50;constB=123;constC='A+B=';$d=A+B;echoC.$d;3、嘗試說出以下代碼的運行結果constA=50;constA=A+15;echoA;1、嘗試說出以下代碼中各個表達式的運算結果。$a=6;$b=7;$c=$a+10*$a;$d=$a++;$e=++$a;$f=$a+++(++$a);$g=++$a-$b--;2.3語句結構——順序結構、分支結構順序語句舉例:$a=6;$b=7;$c=$a+10*$a;$d=$a++;echo$a,$b,$c,$d;2.3語句結構——順序結構、分支結構條件語句1、if語句

if語句是許多高級語言中重要的控制語句if(expr

)statement

如果某個條件成立,就做某件事情。<?php $a="梅格妮"; if($a=="梅格妮")echo"<br>我是吳亦凡的粉絲!"; $a="蘆葦"; if($a=="蘆葦") { echo"<br>我是鹿晗的粉絲!"; } if($a=="梅格妮")echo"<br>我是吳亦凡的粉絲!";echo"<br>我不是鹿晗的粉絲!"; if($a=="蘆葦") { echo"<br>我不是吳亦凡的粉絲!"; echo"<br>我是鹿晗的粉絲!"; }?>2.3語句結構——順序結構、分支結構2、if...else語句if(expr) {statement1;}else {statement2;}2.3語句結構——順序結構、分支結構舉例: $a="梅格妮"; if($a=="梅格妮") { echo"我是吳亦凡的粉絲!"; } else { echo"我不是吳亦凡的粉絲!"; }2.3語句結構——順序結構、分支結構3、if...elseif....else語句if(expr1) {statement1;}elseif(expr2) {statement2;}elseif(expr3) {statement3;}......else {statementn;}2.3語句結構——順序結構、分支結構例如:$score=85;if($score>=90&&$score<=100)echo"你的成績為優秀!";elseif($score>=80&&$score<90)echo"你的成績為良好!";elseif($score>=70&&$score<80)echo"你的成績為中等!";elseif($score>=60&&$score<70)echo"你的成績為及格!";elseif($score>=0&&$score<60)echo"你的成績為不及格!";elseecho"你輸入的成績有誤!!!";2.3語句結構——順序結構、分支結構4、switch語句switch語句和前面講到的if...elseif...else類似,也是根據不同的條件執行不同的語句。switch(variable

){caseval1

:......;break;

caseval2:......;break;caseval3:......;break;......default:

......;}2.3語句結構——順序結構、分支結構例:計算m月d日,是今年的第幾天。提示:定義的三個變量$month=6;$day=20;$sum=0;2.3語句結構——順序結構、分支結構練習:1、寫一個程序判斷該年是否為閏年。(4年一閏,百年不閏,四百年再閏)2、用switch寫一個程序判定每個月份有多少天?(2月按28天即可,不必計算閏月)。3、寫一個程序計算,某年某月某日是該年的第多少天。2.3語句結構——順序結構、分支結構循環語句是在滿足條件的情況下反復地執行某一個操作。

在php中,提供了4個循環控制語句,分別是while循環語句、do-while語句、for循環語句和foreach循環語句。2.4語句結構——循環結構

1.while循環語句如果條件成立,while語句將重復執行代碼塊。語法:while(表達式)

語句塊;

當表達式非0值時,執行while語句中的內嵌語句;當表達式為0時,則不執行while語句中的內嵌語句。特點:先判斷表達式,后執行語句。2.4語句結構——循環結構

1.while循環語句

例:輸出1-5數字<?php$i=1;while($i<=5){echo"Thenumberis".$i."<br/>";$i++;}?>2.4語句結構——循環結構

2.do...while循環語句do...while語句也是循環控制語句中的一種,使用方式和while相似,也是通過判斷表達式的值來輸出循環語句。語法:do{

語句塊;}while(表達式)

該語句的操作流程是:先執行一次指定的循環語句,然后判斷表達式的值,當表達式的值為非0時,返回重新執行循環語句。如此反復,指到表達式的值等于0時為止,循環結束。2.4語句結構——循環結構

3.for循環語句

如果您已經確定了代碼塊的重復執行次數,則可以使用for語句。語法:for(initialization;condition;increment){codetobeexecuted;}for語句有三個參數。第一個參數初始化變量,第二個參數判斷條件,第三個參數包含執行循環所需的增量。如果initialization或increment參數中包括了多個變量,需要用逗號進行分隔。而條件必須計算為true或者false。2.4語句結構——循環結構

3.for循環語句例:使用for循環來計算2-100所有偶數之和。 $sum=0; for($a=0;$a<=100;$a+=2) $sum=$sum+$a; echo"結果為:".$sum;2.4語句結構——循環結構

4.foreach循環語句

foreach循環控制語句自php4開始被引入,主要用于處理數組,是遍歷數組的一種簡單方法。如果將該語句用于處理其他的數據類型或者初始化的變量,將會產生錯誤。該語句的語法有兩種格式:foreach(array

as$value

){

循環語句;}

或者foreach(arrayas$key

=>$value){

循環語句;}2.4語句結構——循環結構

4.foreach循環語句

例:遍歷數組$arr=array("one","two","three"); foreach($arras$value) { echo"Value:".$value."<br/>"; }2.4語句結構——循環結構例:九九乘法表2.4語句結構——循環結構1、break跳轉語句break關鍵字可以終止當前的循環,包括while、do...while、for、foreach和switch在內的所有控制語句。break語句不僅可以跳出當前的循環,還可以指定跳出幾重循環。格式為:breakn;參數n指定要跳出的循環數量。2、continue跳轉語句

程序執行break后,將跳出循環,而開始繼續執行循環體的后續語句。continue跳轉語句的作用沒有break那么強大,只能終止本次循環,而進入下一次循環中。在執行continue語句后,程序將結束本次循環的執行,并開始下一輪循環的執行操作。continue也可以指定跳出幾重循環。2.5語句結構——跳轉語句3、goto語句goto操作符可以用來跳轉到程序中的某一個指定位置。該目標位置可以用目標名稱加上:來標記。php中的goto是有一定限制的,它無法跳轉到任何循環或者switch結構中。常見的用法是用來跳出循環或者switch。可以代替多層的break。

當然php中的goto還有別的限制,如只能在同一個文件和作用域中跳轉,也就是說你無法跳出一個函數或者類方法,也無法跳入到另一個函數。4、return語句

還有一種跳轉語句叫做return語句,會跳出當前函數。我們會在后面的章節里講解。2.5語句結構——跳轉語句<html><body><tablewidth="50%"border="1"> <?php for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { echo"<td>$a*$b=".$a*$b."</td>"; } echo"</tr>"; } ?></table></body></html>2.5語句結構——跳轉語句for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { if($b==5)break; echo"<td>$a*$b=".$a*$b."</td>“; } echo"</tr>“;for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { if($b==5)continue; echo“<td>$a*$b=”.$a*$b.“</td>“; } echo"</tr>";}

1.思考如何做一個某年的日歷。(需要用到循環的知識)2.6思考題1.求1-100的奇數和2.用循環輸出3.輸出50以內能被3整除的數4.求半徑從1-10的圓的面積,并且將大于100的面積輸出2.6思考題程序在開發的過程中,常常需要重復進行某種操作或者處理,如果每次執行相同的操作都要重新寫一遍相同的代碼,那樣會造成系統資源極大的浪費。而且可維護性會很差,比如說一個操作需要改進,程序中有多處使用相同的代碼,那么改動一個小小的地方,都要浪費很大的力氣,寫很多重復的代碼也會降低開發的效率。函數就是為了解決這些問題而設計的。PHP中函數分為系統函數和用戶自定義函數兩類。PHP擁有多達162個系統函數庫,包含著數量超過1000的系統函數。PHP也可以根據需要自定義函數。2.7函數1.函數的定義和調用函數是一種可以在任何被需要的時候執行的代碼塊。格式:function

fun_name

($str1,$str2.....$strn

){ fun_body;

}function是聲明自定義函數時必須用到的關鍵字。fun_name自定義函數的名字。函數名要符合php的命名規范。$str1函數的參數。參數可以是一個,也可以是多個,也可以沒有。但是小括號不能省略。fun_body是自定義函數的主體,是功能實現部分。2.7函數1.函數的定義和調用<?phpfunctionwriteMyIdol(){echo"我的偶像是陳偉霆<br>";}writeMyIdol();writeMyIdol();writeMyIdol();echo"重要的事情說三遍";?> 2.7函數2.函數的參數定義時的參數稱為形式參數,簡稱形參;

調用時的參數稱為實際參數,簡稱實參例:functionhello($str)//形式參數

{echo"hello$str";}hello("EXO");//實際參數2.7函數2.函數的參數默認參數就是函數的參數列表中的若干參數指定了值,如果調用函數時不傳入對應的值則函數會接受默認參數的值,這樣可以避免調用時出現沒有參數的錯誤。也可以使一些程序顯得更加合理。如果傳入對應的參數,就會替換默認參數。例:functiontvplay($str='后宮甄嬛傳'){ echo"<br>我喜歡看:".$str;}tvplay();tvplay("偽裝者");

2.7函數2.函數的參數默認參數例:functiontvplay($t1,$t2='好先生',$t3='十宗罪'){ echo'<br>我喜歡的電視劇是:'.$t1;echo'<br>你喜歡的電視劇是:'.$t2;echo'<br>他喜歡的電視劇是:'.$t3;}tvplay('瑯玡榜');2.7函數3.函數參數的傳遞可以通過參數向函數傳遞信息。參數類似變量。參數被定義在函數名之后,括號內部。可以添加任意多參數,只要用逗號隔開即可。參數傳遞的方式有3種:按值傳遞按引用傳遞默認參數2.7函數3.函數參數的傳遞(1)值傳遞實參值賦給形參,函數調用后實參值不變。例:functionexample($m){ $m=$m*$m+10; echo'<br>在函數內,$m的值是:'.$m;}$m=3;example($m);echo'<br>在函數外,$m的值是:'.$m;2.7函數3.函數參數的傳遞(2)引用傳遞

按引用傳遞就是將實參的內存地址傳遞到形參中。這時,在函數內部的所有操作都會影響到實參的值,返回后實參的值會發生相應的變化。引用傳遞方式就是在傳值時在原基礎上加&符號即可。例:functionexample(&$m){ $m=$m*$m+10; echo'<br>在函數內,$m的值是:'.$m;}

$m=3;example($m);echo'<br>在函數外,$m的值是:'.$m;2.7函數3.函數參數的傳遞(3)默認參數(可選參數)

還有一種設置參數的方式,默認參數即可選參數。可以指定某個參數為可選參數,將可選參數放在參數列表的末尾,并且指定其默認值為空。例:已知原價,計算出售價格。functionvalues($price,$tax=‘'){ $price=$price+$price*$tax; echo"<br>出售價格:".$price; }values(100,0.25);values(100);2.7函數4.函數的返回值

通常,函數將返回值傳遞給調用者的方式是使用關鍵字return。return()

將函數的返回值返回給函數的調用者,即將程序控制權返回到調用者的作用域。如果在全局作用域內使用return()關鍵字,那么將終止腳本的執行。

return函數只能返回一個參數,即只能有一個返回值,不能一次返回多個。例:

functionvalues($price,$weight){ return$price=$price*$weight;}echo"總金額是:".values(5.8,100);2.7函數5.函數中變量的作用域

變量需要先定義后使用,但這不是可以隨時使用變量的。變量需要在作用范圍內才可以使用,即變量的作用域。

在函數中定義的變量稱為局部變量,在函數外定義的變量稱為全局變量。

如果希望函數內部使用函數外部的變量,需要在函數內部使用關鍵字global修飾變量。2.7函數$var=100;//此處$var是全局變量functiontest(){echo"在函數內部var的值:".$var;//在函數內容部調用全局變量$var}test();//無效調用$var=100;//此處$var是全局變量functiontest(){

global$var;//在test()范圍內,使用函數外面的變量

echo"在函數內部var的值:".$var;}test();//有效調用6.可變函數

可變函數也稱作變量函數。如果一個變量名后有圓括號,php將尋找與變量的值同名的函數,并且將嘗試執行它。這樣就可以將不同的函數名稱賦予同一個變量,賦予變量哪個函數名,在程序中使用變量名并在后面加上圓括號時,就調用哪個函數執行,類似面向對象中的多態特性。可變函數還可以被用于實現回調函數、函數表等。例:可變函數functiona($a,$b){ return$a+$b;}functionb($a,$b){ return$a*$a+$b*$b;}functionc($a,$b){ return$a*$a*$a+$b*$b*$b;}$result=“c”;//$result=“a”;$result=“b“;可分別調用a和b兩個函數echo“運算結果是:”.$result(2,3);2.7函數注意:可變函數在實際編程中使用可增加程序的靈活性,但是濫用可變函數會降低PHP代碼的可讀性,使程序邏輯難以理解,給代碼維護帶來不便,所以在編程過程中盡量少用或不用可變函數。7.遞歸函數

遞歸函數即自調用函數,在函數體內直接或間接地自己調用自己。例:使用遞歸函數實現1-n的和:functiongetSum($n){ if($n==1){//滿足條件,遞歸結束

return1; } $temp=getSum($n-1); return$temp+$n;}echo“sum=”.getSum(4);//調用遞歸函數,打印出1-4的和2.7函數課后練習:2.7函數除了用戶自行編寫的函數庫外,php自身也提供了很多內置的函數。

在PHP中,提供了超過700個內建的函數。判斷一個編程語言的功能強弱,可以從他的庫函數入手。一個較好的編程語言,必然有較強的庫函數。常用函數:explode():將字符串分割成數組implode():將字符數組拼接成一個新的字符串strcmp():字符串比較操作str_replace():取代所有在字符串中出現的字串。substr():從指定的字符串str中按照指定的位置start截取一定長度length的字符。strlen():獲取指定字符串的長度trim():刪除字符串前后的空白2.8內置函數1.arrayexplode(string$separator,string$str[,int$limit])//字符串分割

例:$str="apple,pear,banana,orange";$arr=explode(",",$str);echo"分割結果為:";print_r($arr);

例:$str="apple,pear,banana,orange";$arr=explode(“,”,$str,2);echo"分割結果為:";print_r($arr);

2.8內置函數2.stringimplode(string$glue,array$arr)//字符串連接例:$fruit_arr=array("apple","pear","banana","orange");$fruit_str=implode("&",$fruit_arr);echo"fruit_str=".$fruit_str;3.Intstrcmp(string$strl,string$str2)例:$str1="abcd";$str2="ABCD";$str3="abcd";echo"str1和str2比較結果是:".strcmp($str1,$str2)."<br>";//1:正數為str1大于str2echo"str1和str3比較結果是:".strcmp($str1,$str3)."<br>";//0為str1與str3相等echo"str2和str1比較結果是:".strcmp($str2,$str1)."<br>";//-1:負數為str2大于str12.8內置函數4.mixedstr_replace(mixed$search,mixed$repalce,mixed$subject[,&$count])//字符串替換例:$str1="Ilikeplayfootball,andheisalsolikeplayfootball";$str2="backetball";echo"替換前:".$str1."<br>";$str=str_replace("footbal",$str2,$str1,$count);echo"替換后:".$str."<br>";echo"字符串football被替換的次數為:".$count."<br>";2.8內置函數5.stringsubstr(string$str,int$start[,int$length])//字符串截取例:$str="Thisisastring";$str1=substr($str,0,4);//從第一個字符開始,截取4個字符echo"str1為:".$str1."<br>";$str2=substr($str,0);//從第一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論