PHP簡(jiǎn)介
PHP(外文名:PHP: Hypertext Preprocessor,中文名:超文本預(yù)處理器喜最,是一種通用開(kāi)源腳本語(yǔ)言偎蘸。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn)返顺,利于學(xué)習(xí)禀苦,使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域遂鹊。PHP 獨(dú)特的語(yǔ)法混合了C振乏、Java、Perl自創(chuàng)的語(yǔ)法秉扑。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)慧邮。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比调限,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)下的一個(gè)應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多误澳;PHP還可以執(zhí)行編譯后代碼耻矮,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快忆谓。
PHP語(yǔ)言標(biāo)簽 注意事項(xiàng)
- 開(kāi)頭必須是英文字母或下劃線
- 結(jié)尾必須要有分號(hào)
*定義元素是在前面加上$ - 輸出數(shù)組用print_r()
- 輸出其他的一般用echo +要輸出的內(nèi)容
PHP數(shù)據(jù)類型
-
數(shù)字類型
$number=1裆装; $number=0123;//代表八進(jìn)制的數(shù) $number=0x123;代表16進(jìn)制的數(shù)
字符串類型
1.創(chuàng)建字符串三種形式
(1)$string="luxp";
$string1="string $string"http://雙引號(hào)里的變量會(huì)被解析
(2)$string2='string $string'//單引號(hào)里的變量不會(huì)被解析
(3)$string3=<<<EOF
string $name
string $name
EOF;//可以寫(xiě)多行且不會(huì)被解析
2.字符串連接
$name="luxp";
$welcome="歡迎".$name."來(lái)這里";
當(dāng)字符串中包含了雙引號(hào)或者單引號(hào)時(shí)需要轉(zhuǎn)義
$name.="歡迎來(lái)這里" $name "";-
數(shù)組
數(shù)字下標(biāo)與鍵名下標(biāo)都是數(shù)組
1.一維數(shù)組$array=array(); $array[1]="數(shù)組1"; $array[2]="數(shù)組2"; $array['no1']="關(guān)聯(lián)數(shù)組1"; $array['no2']="關(guān)聯(lián)數(shù)組2"; $array[] ="數(shù)組3"; $array[] ="數(shù)組4";//如果為空倡缠,取當(dāng)前最大下標(biāo)自動(dòng)加1 $array[6] ="數(shù)組6";//可以任意指定鍵值 print_r($array); echo $array['no1']; $string="adujskg"; echo $string[2];//字符串可以向數(shù)字一樣取值 //相同的鍵名取加號(hào)前面的數(shù)組 $arr1=array("one"=>1,"two"=>2,"three"=>3); $arr2=array("three"=>4,"four"=>5,"five"=>6); print_r($arr2); $arr=$arr1+$arr2; print_r($arr);
2.二維數(shù)組
$array['no1']=array(1,2,3,4);
-
布爾類型
$result=true; $result=false;
-
數(shù)據(jù)類型轉(zhuǎn)換
PHP是一個(gè)弱類型語(yǔ)言哨免,聲明變量不需要明確指定類型,并且變量在程序執(zhí)行過(guò)程中可以被賦值任意類型
$num="10 sss";//當(dāng)一個(gè)字符串與數(shù)字相加時(shí)昙沦,會(huì)自動(dòng)轉(zhuǎn)化成數(shù)字類型琢唾,轉(zhuǎn)化成合法的十進(jìn)制數(shù)字,編程時(shí)盡量避免混淆的語(yǔ)法$num="10 sss"; $num=$num+100;
輸出結(jié)果是110
PHP運(yùn)算符類型
條件語(yǔ)句 if
PHP條件語(yǔ)句和JS語(yǔ)句語(yǔ)法相同
1.if(條件){條件正確時(shí)是執(zhí)行的語(yǔ)句}else{不滿足條件時(shí)執(zhí)行的語(yǔ)句}
2.浮點(diǎn)數(shù)存在精度問(wèn)題盾饮,不能直接相比較
3.當(dāng)需要判斷類型的時(shí)候采桃,一定要用全等于===
4.在判斷時(shí)存在取反就是在條件前面加入!,當(dāng)條件成立時(shí)則條件不成立,反之成立
4.當(dāng)條件的鍵值為0 "0" 空字符 未定義類型 null這些值時(shí)丘损,則條件是false邏輯運(yùn)算符
或運(yùn)算 前面的條件滿足時(shí)后面就不會(huì)執(zhí)行
與運(yùn)算 前面的條件不滿足是后面的代碼就不會(huì)執(zhí)行-
三目運(yùn)算符
$a=10;$b=12; $c=$a>$b?$a:$b;
*多分支語(yǔ)句 switch case
$weekday=8;
switch($weekday){
case 1:
echo "周一";
break;
case 2:
echo "周二";
break;
case 3:
echo "周三";
break;
case 4:
echo "周四";
break;
case 5:
echo "周五";
break;
case 6:
echo "周六";
break;
case 7:
echo "周日";
break;
default:
echo "你錯(cuò)了";
break;
}
輸出結(jié)果是:你錯(cuò)了
循環(huán)結(jié)構(gòu)
-
for循環(huán)
for 循環(huán)for($i=0;$i<10;$i++){ echo "$i"; }
輸出結(jié)果是0123456789
-
foreach
$array[0]="one"; $array[1]="two"; $array[2]="three"; //foreach foreach($array as $key =>$val){ echo "$key =>$val <br>"; }
-
while循環(huán)
$i=0; while($i<10){ echo "$i<br>"; $i++; }
-
do while 循環(huán)
do至少執(zhí)行一次$num=10; do{ echo "$i<br>"; if($i==$num){ break; } $i++; }while($i);
下面舉幾個(gè)小例子來(lái)把PHP運(yùn)用在HTML中
-
簡(jiǎn)單粗暴的日歷表
<?php $lesson=array(); $lesson[0]="休息"; $lesson[1]="h5"; $lesson[2]="JS"; $lesson[3]="css"; $lesson[4]="php"; $lesson[5]="ajax"; $lesson[6]="json"; ?> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td>周日</td> <td>周一</td> <td>周二</td> <td>周三</td> <td>周四</td> <td>周五</td> <td>周六</td> </tr> <tr> <?php foreach($lesson as $key => $val){ ?> <td><?=$val?></td> <?php }?> </tr> </table>
輸出結(jié)果為:
-
商品購(gòu)物
<?php $shop=array(); $shop[0]=array("手機(jī)","$100",20); $shop[1]=array("電腦","$300",20); $shop[2]=array("iPad","$200",20); ?> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td>商品名稱</td> <td>商品價(jià)格</td> <td>購(gòu)買(mǎi)數(shù)量</td> </tr> <?php foreach($shop as $key =>$val){ ?> <tr> <?php foreach($val as $_key=>$_val){ ?> <td><?=$_val?></td> <?php }?> </tr> <?php }?> </table>
運(yùn)行結(jié)果如下:
-
簡(jiǎn)單的留言板
<?php $liuyan=array(); $reirong=array("rdishgoertgjfjytdgjjyhgjghhjjhjhjjhjhhtrtrorew","reue6ehrrttrurtytytgrt6hj8","euwtieqtrytyyeeyeructwop"); $liuyan[0]=array("li","xxx","1月1日"); $liuyan[1]=array("lisi","yyy","2月2日"); $liuyan[2]=array("zhangsan","zzz","3月31日"); ?> <table border="1" cellspacing="0" cellpadding="0"> <?php foreach($liuyan as $key=>$val){ ?> <tr> <?php foreach($val as $_key=>$_val){ ?> <td><?=$_val?></td> <?php }?> </tr> <td colspan="3"><?=$reirong[$key]?></td> <?php }?> </table>
運(yùn)行結(jié)果如下:
PHP函數(shù)
函數(shù)注意事項(xiàng)
- 函數(shù) 一種代碼塊(內(nèi)存中一塊區(qū)域)
- 定義 function
- 函數(shù)只有調(diào)用才能執(zhí)行
- 函數(shù)可以定義若干個(gè)參數(shù),形參可以設(shè)定默認(rèn)值普办。具有默認(rèn)值的不能排在無(wú)默認(rèn)值前面
舉例說(shuō)明
function myfunction($param2,$param="lxx"){
echo $param."hello word";
}
myfunction(1);
輸出結(jié)果為:lxxhello word
function getfunc(){
$array=array();
for($i=0;$i<10;$i++){
// 如果使用外部變量必須使用use($i),不使用的話是獲取不到i的值的
$array[$i]=function()use($i){
return 10+$i;
};
}
return $array;
}
//$funcArray是一組函數(shù)
$funcArray=getfunc();
echo $funcArray[3]();
輸出結(jié)果為:13
-
函數(shù)體內(nèi)部定義的變量只在函數(shù)體內(nèi)有效
在函數(shù)體內(nèi)部使用global關(guān)鍵字,將變量定義為全局變量function addfunc($a){ global $a; echo $a=$a-3;//輸出結(jié)果為7 } addfunc($a); echo $a;//輸出結(jié)果為7
-
引用傳參
函數(shù)名不能重復(fù)
引用傳參在形參前面添加&符
引用傳參 号俐,傳的是變量本身泌豆,而不是它的值function myfunc_2($a){ $a--; echo $a;//輸出結(jié)果為9 } $b=10; myfunc_2($b); echo $b;//輸出結(jié)果為10 function myfunc_2(&$a){ $a--; echo $a;//輸出結(jié)果為9 } $b=10; myfunc_2($b); echo $b;//輸出結(jié)果為9
-
內(nèi)置函數(shù)
1.empty()判定一個(gè)變量是不是存在
如果變量未定義返回true
第二種$luxp=""值為空返回true
第三種$luxp=0;返回true
第四種$luxp="0";返回true
第五種$luxp=null;返回true
empty()只有變量在定以后,并且賦值吏饿,且值不為空 0 "0"null false 返回false$luxp=false; if(empty($luxp)){ echo "<br>變量未定義"; }else{ echo $luxp; }
2.isset()
$luxp;如果變量未定義返回false
第二種$luxp=""值為空返回true
第三種$luxp=0;返回true
第四種$luxp="0";返回true
第五種$luxp=null;返回false
第五種$luxp=false/true;返回trueif(isset($luxp)){ echo "變量已定義"; }else{ echo "變量未定義"; }
這只是一部分PHP基礎(chǔ)踪危,可見(jiàn)后面還有很多很多需要去學(xué)習(xí)……