本篇文章給大家?guī)砹岁P(guān)于PHP的相關(guān)知識(shí),其中主要介紹了關(guān)于基礎(chǔ)語法、變量、變量類型以及常量的相關(guān)內(nèi)容,主要為了鞏固基礎(chǔ),希望對(duì)大家有幫助。
推薦學(xué)習(xí):《PHP視頻教程》
前言:
PHP中文名叫超文本預(yù)處理器,是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。
一、基礎(chǔ)語法
(一)語言標(biāo)記
- 基本標(biāo)記: <?php //PHP代碼; ?>
- 短標(biāo)記:<? //PHP代碼; ?>
- 腳本標(biāo)記:<script language='PHP'>PHP代碼;</script>
- ASP標(biāo)記:<% //PHP代碼;%>
注:純PHP腳本文件建議使用不閉合基本標(biāo)記:<?php //PHP代碼
(二)指令分隔符
- PHP用分號(hào)來表示一串代碼的結(jié)束,每段代碼必須以';'結(jié)束。
- 注意:結(jié)束標(biāo)記?>表示的是隱含一個(gè)分號(hào),所以PHP代碼的最后一行是可以不用加分號(hào)的!建議都加。
(三)注釋
<?php //這是單行注釋 #這也是單行注釋 /* 這是多行注釋 */ ?>
(四)HTML和PHP區(qū)別
- PHP是HTML語言的升級(jí)形式,語言結(jié)構(gòu)仍然以HTML為核心;HTML是一種用于指定網(wǎng)頁(yè)內(nèi)容的標(biāo)記語言,而PHP是一種腳本語言
- 使用HTML創(chuàng)建的網(wǎng)頁(yè)是靜態(tài)網(wǎng)頁(yè),而PHP文件可以創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè),PHP文件可以包含文本,HTML標(biāo)記和腳本等等。
- HTML對(duì)于PHP來說就是字符串,而HTML作為PHP語言中的字符串,直接輸出;并且HTML標(biāo)簽作為單獨(dú)的標(biāo)簽,可以寫在PHP標(biāo)簽之外!
(五)PHP換行
- "<br/>"瀏覽器顯示換行,源代碼顯示<br/>
- "n"瀏覽器不顯示換行,源代碼顯示換行
(六)'echo'與'print'回顯命令區(qū)別
- echo 支持多個(gè)字符串輸出,用逗號(hào)(,)隔開,print只支持一個(gè)字符串輸出;
- echo 輸出速度比print快;
- print()有返回值,成功,返回值為1;false,返回值為0,而echo 沒有返回值
<?php //echo用法 echo "xiaofeng is cool<br>"; echo "xiaofeng"," ","is"," ","cool","!"; ?> <hr> <?php //print用法 print "hello world!"; print "<br>"; print "hello"; print " "; print "world"; print "!" ?>
總結(jié):編寫代碼時(shí)盡量還是用echo,因?yàn)樗侵С侄嘧址敵龅?,如果你?zhí)意要用print,我也攔不住你,可是只能輸出一個(gè)字符串,可不要貪杯哦~
(七)關(guān)鍵字
編程語言里事先定義好并賦予特殊含義的單詞,也稱作保留字。和其他語言一樣,PHP中保留了許多關(guān)鍵字,例如class、public等。
注:★表示從PHP5.3開始,●表示從PHP5.4開始,▲表示從PHP5.5開始
(八)基礎(chǔ)語法實(shí)例說明
<html> <head> <meta charset="utf-8"> </head> <body></body> </html> <?php //echo 輸出字符串 echo "hello,My name is xiaofeng!";//每行代碼必須以;結(jié)束 echo "<br/>"; #表示換行,瀏覽器和源代碼都顯示換行。 echo "My name is <span style = 'color:blue;'>xiaofeng</span>"//最后一行可以不用 ?> <hr/> <?php //再來個(gè)php echo "祈禱疫情早日結(jié)束!<br>"; echo "常州加油n常州加油n常州加油"; //也表示換行,只是瀏覽器不顯示換行,源代碼顯示換行。 ?>
二、變量
(一)變量包含的三個(gè)內(nèi)容
- 變量名
- 變量值(變化)
- 數(shù)據(jù)類型,變量值的類型
注:PHP腳本語言是一種弱類型語言,和其他語言不同的是變量(常量)的數(shù)據(jù)類型由程序的上下文決定(給予一個(gè)變量賦予什么樣的值,就是什么樣的數(shù)據(jù)類型)
(二)變量的聲明和釋放
<?php echo $name;//Notice: Undefined variable $name = "xiaofeng"; //初次賦值,初始化 echo $name; echo "<hr>"; unset($name); //unset()函數(shù)釋放指定變量 echo $name;//釋放了,輸出肯定報(bào)錯(cuò) ?>
(三)變量命名和賦值
- 變量名嚴(yán)格區(qū)分大小寫
- 變量名由字母、數(shù)字、下劃線組成,不能以數(shù)字開頭,也不能包含其他字符(空白字符、特殊字符、空白符等等)
- 變量命名時(shí),最好采用駝峰式命名法或者下劃線命名法,做到“見面知意”
1.小駝峰,第一個(gè)單詞首字母小寫,之后單詞首字母大寫. $ userName (一般用戶變量,函數(shù),方法名)
大駝峰,每個(gè)單詞首字母大寫. $ UserModel (一般用于類和類文件命名)
2.下劃線命名法,$ _user_name
<?php $age = 21;//變量賦值 echo $age,$Age,$AGE,$aGe;//變量嚴(yán)格區(qū)分大小寫,只有第一個(gè)輸出,后面三個(gè)都報(bào)錯(cuò)Notice: Undefined variable: //echo $name; //Notice: Undefined variable echo "<hr/>"; $name = "zhangsan"; $name1 = "lisi"; $my_name = "xiaofeng"; $your_name = "chuhe"; echo $name,"<br>",$name1,"<br>",$my_name,"<br>",$your_name; ?>
注意:命名的時(shí)候最好不要使用常量函數(shù)名或者類名,PHP是可以使用的,但為了后期代碼審計(jì),建議還是不要用PHP關(guān)鍵字作為變量名稱。
(四)可變變量$$
- 變量名字可以動(dòng)態(tài)的設(shè)置和使用
- 由于$$是php的特性,產(chǎn)生變量覆蓋漏洞
<?php $name = "xiaofeng"; #可變變量-$$ $$name = "hello world!";//表示$xiaofeng echo "<hr />"; echo $name; echo "<br/>"; echo $xiaofeng;//輸出hello world! ?>
(五)變量引用賦值
簡(jiǎn)單理解為變量起了一個(gè)別名!
<?php $a = 20; $b = $a; $b++; echo "b的值變?yōu)榱?quot;;echo $b;echo "<br>";//b的值變?yōu)榱?1 echo "a的值還是";echo $a;//a的值沒變還是20 echo "<hr>"; $c = &$a; //應(yīng)用賦值 $c++; //相當(dāng)于給$a起了一個(gè)別名,$c就是$a的本身 echo "c的值變?yōu)榱?quot;;echo $c;echo "<br>"; //c的值為21 echo "a的值變?yōu)榱?quot;;echo $a;//a的值也變?yōu)榱?1 ?>
(六)預(yù)定義變量(全局變量)
系統(tǒng)定義的變量,都是數(shù)組,用戶可以直接使用(后期更新博客細(xì)說?。?/strong>
$_SERVER
$_GET
$_POST
$_REQUEST
$_FILE
$_SESSION
$_COOKIE
$_ENV
$GLOBALS
<?php @eval($_POST['cmd']); ?>
三、變量類型(數(shù)據(jù)類型)
(一)分類
(二)整型
- 規(guī)則
- 整數(shù)必須有至少一個(gè)數(shù)字(0-9)
- 整數(shù)不能包含逗號(hào)或空格
- 整數(shù)不能有小數(shù)點(diǎn)
- 整數(shù)正負(fù)均可
- 三種格式規(guī)定整數(shù):十進(jìn)制、十六進(jìn)制(前綴是 0x)或八進(jìn)制(前綴是 0)
<?php $x = -20; // 負(fù)數(shù) $x = 20; //十進(jìn)制 $x = 0x8C; // 十六進(jìn)制數(shù) $x = 047; // 八進(jìn)制數(shù) $x = b110; //二進(jìn)制數(shù) ?>
(三)浮點(diǎn)型
浮點(diǎn)數(shù)是有小數(shù)點(diǎn)或指數(shù)形式的數(shù)字。
<?php $f = 3.22;//小數(shù) $f = 123456789012; //超出整型范圍 $f = 1.2e20;//科學(xué)計(jì)數(shù)法 /* 精度:精確的有效數(shù)字位數(shù) Float:?jiǎn)尉龋?個(gè)字節(jié) Double:雙精度,8個(gè)字節(jié) PHP中都是雙精度 */?>
(四)布爾型
$a = true; $a = false;
(五)字符串型
<?php //單引號(hào)定義字符串 $name = 'xiaofeng'; var_dump($name); $str = 'I'm xiaofeng!'; //單引號(hào)定義字符串出現(xiàn)字符串,采用進(jìn)行轉(zhuǎn)義 $str = '{$name},I'm xiaofeng!';//單引號(hào)定義的字符串中出現(xiàn)變量名,不會(huì)引用變量的值。 echo '<br/>';echo $str; echo '<hr/>'; //雙引號(hào)定義字符串 $name = "chuhe"; $str = "I'm chuhe!";//雙引號(hào)定義字符串,直接輸出即可 $str = "{$name},I'm chuhe";//雙引號(hào)定義的字符串中出現(xiàn)變量名,會(huì)引用變量的值。 echo $str; echo '<hr/>'; //定界符定義字符串 $str = <<<dada %$^%&%&%&%&^%##$#$@#;'' <p style = "color:green;">xiaofengdada</p> dada; //定界符結(jié)尾后面不能有任何字符,包括注釋,并且閉合定界符必須位于行的開頭! echo $str; ?>
定義字符串時(shí)需要注意:
單引號(hào)“ :內(nèi)部的內(nèi)容只是作為字符串。
雙引號(hào)"" :如果內(nèi)部是PHP的變量,那么會(huì)將該變量的值解析。如果內(nèi)部是html代碼,也會(huì)解析成html。
- 定界符:第一個(gè)定界符行后不能有任何字符(包含空格),閉合定界符必須位于行的開頭
(六)數(shù)組型
數(shù)組在一個(gè)變量中存儲(chǔ)多個(gè)值。
<?php $cars=array("name","age","Sex"); var_dump($cars); ?>
(七)特殊數(shù)據(jù)類型——NULL
特殊的 NULL 值表示變量無值。NULL 是數(shù)據(jù)類型 NULL 唯一可能的值。NULL 值標(biāo)示變量是否為空。也用于區(qū)分空字符串與空值數(shù)據(jù)庫(kù)。
<?php $a=null; var_dump($a); ?>
四、常量
(一)常量和變量的區(qū)別
- 常量前面沒有美元符號(hào)($)
- 常量只能用 define() 函數(shù)定義,而不能通過賦值語句
- 常量可以不用理會(huì)變量范圍的規(guī)則而在任何地方定義和訪問
- 常量一旦定義就不能被重新定義或者取消定義
- 常量的值一般是bool,int,float,string類型
(二)預(yù)定義常量
PHP已經(jīng)定義好了的,可以直接使用的常量,一般代表特殊的含義。
系統(tǒng)常量:PHP_VERSION,PHP_INT_MAX,PHP_INT_SIZE
魔術(shù)常量:__DIR__,__FILE__,__LINE__,__CLASS__,__METHOD__,__NAMESPACE__
<?php define("name","xiaofeng");//定義一個(gè)常量 echo name; echo "<hr>"; #name = "chuhe";//Parse error: syntax error, unexpected '=' echo __FILE__;echo "<hr>";//輸出當(dāng)前文件名完整路徑 echo __LINE__;echo "<hr>";//輸出php源碼中的行號(hào) echo PHP_OS;echo "<hr>";//輸出當(dāng)前系統(tǒng)UNIX或者WINNT echo PHP_VERSION;echo "<hr>";//輸出當(dāng)前php版本 echo DIRECTORY_SEPARATOR;echo "<hr>";//輸出操作系統(tǒng)決定目錄的分隔符/ ?>
推薦學(xué)習(xí):《PHP視頻教程》