|
—PHP的基本語法 Php在html中嵌入3種方式 1 <?php ?> 2 <? ... ?>修改php.ini中 short_open_tag = on 3 <% ... %>修改php.ini中asp_tags = on 4 <script language="php">...</script> 注釋 作用:(1)解釋代碼功能(2)調(diào)試程序 1 單行注釋 //這里是單行注釋里的內(nèi)容 2 多行注釋 /* 多行注釋*/ 3 Shell 風(fēng)格的單行注釋 #注釋內(nèi)容 標(biāo)識(shí)符/變量命名規(guī)范: ? 必須以$開頭 ? 第一個(gè)字符必須是字母(可以是中文)或者是下劃線_,不能使用數(shù)字 ? 標(biāo)識(shí)符不能出現(xiàn)空格(通常使用下劃線進(jìn)行字符分隔) ? 變量名區(qū)分大小寫,常量區(qū)分大小寫。其他都不區(qū)分大小寫函數(shù)名不區(qū)分大小寫 ? 編碼規(guī)范: (1)縮進(jìn) 每縮進(jìn)一個(gè)單位是一個(gè)tab(4個(gè)空白字符寬度) (2){} 首大括號(hào)與關(guān)鍵字同行,尾括號(hào)與關(guān)鍵字同列 (3)運(yùn)算符 每個(gè)運(yùn)算符與兩邊參與運(yùn)算的值或表達(dá)式要有一個(gè)空格,字符連接符除外 (4)'(' 與關(guān)鍵字緊貼在一起 “)”出來)與. 其他一律用空格分隔 (5)不能出現(xiàn)空白的帶有tab 和空格的行,大的程序塊上下加入空行,程序塊之間只有一個(gè)空行,少于15行的程序塊可不加空行 ● 函數(shù)定義中的左小括號(hào)與函數(shù)名緊挨著,中間無需空格 ● 開始的做大括號(hào)與函數(shù)定義為同一行,中間加一個(gè)空格,不要另起一行 ● 具有默認(rèn)值的參數(shù)應(yīng)該位于參數(shù)列表的后面 ● 函數(shù)調(diào)用與定義的時(shí)候參數(shù)與參數(shù)之間加入一個(gè)空格 ● 必須仔細(xì)檢查并切實(shí)杜絕函數(shù)起始縮進(jìn)位置與結(jié)束縮進(jìn)位置不同的現(xiàn)象 (6)引號(hào) ● 單引號(hào)'':任何變量,特殊轉(zhuǎn)義字符 不會(huì)被解析,僅支持“'”, “”的轉(zhuǎn)義 ● 雙引號(hào)"": 變量,轉(zhuǎn)義字符都會(huì)被解析,還有兩項(xiàng)特殊功能性轉(zhuǎn)義“$”,“{$array['key']}”:雙引號(hào)中表示變量索引時(shí),可以不加引號(hào) ◆ 優(yōu)點(diǎn):程序編寫方便 ◆ 缺點(diǎn):php的解析很慢 (7)數(shù)組 若,數(shù)組小標(biāo)是字符串型,必須用單引號(hào)將下標(biāo)括起eg:$array['key']; 絕大多數(shù)可以使用單引號(hào)的場(chǎng)合,禁止使用雙引號(hào) 必須使用單引號(hào)情況: ● 字符串為固定值,不包含轉(zhuǎn)義字符 ● 數(shù)組為固定下標(biāo) ● 表達(dá)式中不需要帶入變量,eg:$string='test'; 正則表達(dá)式中全部使用雙引號(hào) 數(shù)據(jù)庫sql語句中,所有數(shù)據(jù)必須加單引號(hào),無論數(shù)值還是字串 (8)變量、對(duì)象、函數(shù)名一律為小寫格式,除非必要,單詞之間一般不使用下劃線“_”進(jìn)行分割 (9)常量應(yīng)該總是全部使用大寫字母命名,可使用下劃線來分割單詞 php內(nèi)建值TRUE、FALSE、NULL 必須大寫 (10)任何變量在進(jìn)行累加,直接顯示或存儲(chǔ)前必需進(jìn)行初始化 $number = 0;//數(shù)值型初始化 $string = '';//字符串初始化 $array = array(); //數(shù)組初始化 若判斷一個(gè)無法確定的變量時(shí),可用empty() 或isset()判斷 若確定此變量一定已經(jīng)被初始化并賦值則用if($switch)形式 Empty()與isset() 的區(qū)別為: ● Bool empty(mixed var)(前提是變量存在) ? 如果var 是非空或非零的值,則empty()返回 FALSE。 即:“”,0,“0”,NULL,FALSE,array(),var $var及沒有任何屬性的對(duì)象都被認(rèn)為是空的,如果var為空,則返回TRUE ● Bool isset(mixed var[, mixed var[, ...]])語言結(jié)構(gòu) ? 如果var存在則返回TURE,否則返回FALSE. ? 如果已經(jīng)使用unset()釋放了一個(gè)變量之后,它不再是isset()。若使用isset()測(cè)試一個(gè)被設(shè)置成NULL的變量,將返回FALSE。同時(shí)要注意的是一個(gè)NULL字節(jié)("?")并不等同于php 的NULL常數(shù) 1,沒有設(shè)置過的變量,2,使用unset()之后的3.被是指NULL的變量 判斷一個(gè)變量是否為數(shù)組,請(qǐng)使用is_array()這種判斷尤其適用于對(duì)數(shù)組進(jìn)行遍歷的操作,foreach() 判斷一個(gè)數(shù)組元素是否存在,可使用isset(array(['key']),也使用empty() (11)包含調(diào)用程序文件,全部使用 require_once,以避免可能的重復(fù)包含問題; 包含調(diào)用緩存文件,由于緩存文件無法保證100%正確打開,用include_once或include. 必要時(shí),可以使用@include_once或@include的方式,以忽略錯(cuò)誤提示 Require 與 include 區(qū)別 Require () 程序出錯(cuò),為致命錯(cuò)誤,程序?qū)⒉辉賵?zhí)行 Include()程序出錯(cuò),報(bào)出警告,程序仍繼續(xù)執(zhí)行 Include_once() 與 include()區(qū)別: Include_once() 執(zhí)行之前,會(huì)檢查之前此函數(shù)包含的文件有沒有被包含過,若包含過則跳過不執(zhí)行此語句。 Include () 不會(huì)檢測(cè),直接執(zhí)行 包含和調(diào)用代碼中,須以“./”或DISCUZ_ROOT.' ./ '開頭,避免直接寫程序文件名(eg: require_once 'x.php') 所有包含和調(diào)用的程序文件,包括不限于程序、緩存或模板,通常其不能被直接URL請(qǐng)求。Discuz!通過在./include/common.inc.php中定義一個(gè)標(biāo)記性常量IN_DISCUZ,來判斷程序是否被合法調(diào)用。因此, 在除了./include/common.inc.php以外的任何一個(gè)被包含和調(diào)用的程序文件中,需要包含以下內(nèi)容,以使得訪問者無法直接通過URL 請(qǐng)求該文件: If(!defined('IN_DISCUZ')){ Exit('Access Denied'); } (12)錯(cuò)誤報(bào)告級(jí)別 開發(fā)和調(diào)試階段 Php.ini 使用 error_reporting(E_ALL);作為默認(rèn)的錯(cuò)誤報(bào)告級(jí)別 error_reporting(2047) 發(fā)布階段 使用error_reporting(E_ERROR | E_WARNING | E_PARSE);作為默認(rèn)的錯(cuò)誤報(bào)告級(jí)別error_reporting(7) 上線調(diào)試 Error_reporting(0);上線的錯(cuò)誤級(jí)別 輸出命名 ◆ echo 輸出一個(gè)或多個(gè)字符串 echo()是一個(gè)語言結(jié)構(gòu) //因?yàn)樗且粋€(gè)語言結(jié)構(gòu),所以不一定用小括號(hào)來指明參數(shù),單引號(hào),雙引號(hào)都可以 Void echo(string $arg1[, sting $...])輸出所有參數(shù) $中古ddd=1; echo $中古ddd; echo($中古ddd); echo $str, $中古ddd, $str1;傳遞多個(gè)參數(shù),不加括號(hào) ◆ <?=$foo ?> k注:php.ini 中 short_open_tag 打開 ◆ Print 輸出字符串print()是一個(gè)語言結(jié)構(gòu) 總是返回1 Int print(string $arg) print($str); print $str; ◆ Printf()輸出格式化字符串 返回輸出字符串的長(zhǎng)度 Int printf(sting $format [, mixed $args[, mixed $...]] ) ◆ Sprintf 返回一個(gè)格式化后的字符串 String sprintf(sting $format [, mixed $args[, mixed $...]]) 與printf 區(qū)別為sprintf()需要用echo 輸出 $format 指定替換類型明細(xì)表 %b 表示整型數(shù)據(jù),以二進(jìn)制形式輸出 %c 表示整型數(shù)據(jù),以ASCII形式輸出 %d 表示整型數(shù)據(jù),以有符號(hào)形式輸出 %u 表示整型數(shù)據(jù),以無符號(hào)形式輸出 %o 表示整型數(shù)據(jù),以八進(jìn)制形式輸出 %x 表示整型數(shù)據(jù),以十六進(jìn)制輸出,字母部分小寫 %X 表示整數(shù)數(shù)據(jù),以十六進(jìn)制輸出,字母部分大寫 %f 表示浮點(diǎn)型數(shù)據(jù) %s 表示字符串 ◆ Flush 刷新輸出緩沖 該函數(shù)將當(dāng)前為止程序的所有輸出發(fā)送到用戶的瀏覽器 Void flush( void ) —數(shù)據(jù)類型 基本數(shù)據(jù)類型(標(biāo)量變量即非復(fù)合數(shù)據(jù)類型) | 整型,浮點(diǎn)型,布爾型,字符串 | 復(fù)合數(shù)據(jù)類型 | 數(shù)組,對(duì)象 | 特殊數(shù)據(jù)類型 | NULL ,資源 |
|
|
布爾型 不區(qū)分大小寫,一般大寫 FALSE false,0 ,0.0,"0","",不包括任何元素的數(shù)組,(不包括任何成員變量的對(duì)象)null(包括尚未設(shè)定的變量),從沒有任何標(biāo)記的XML文檔生成的SimpleXML對(duì)象 TRUE 除以上說明的情況,其它值都認(rèn)為true(包括任何資源) 整型 整型最大值常量表示PHP_INT_MAX表示,若超出整型范圍,則被解釋為float,若運(yùn)算結(jié)果超出整型范圍,也會(huì)返回float Intval()將一個(gè)值轉(zhuǎn)換為整型 Float round() 二進(jìn)制 十進(jìn)制 八進(jìn)制 數(shù)字前邊+0, 十六進(jìn)制 數(shù)字前邊+0x 浮點(diǎn)型 浮點(diǎn)數(shù)的字長(zhǎng)和平臺(tái)相關(guān) 字符串型 一個(gè)字符串就是由一系列的字符組成,一個(gè)字符就是一個(gè)字節(jié),一個(gè)字節(jié)只能有256種不同的變化,這也暗示php無法原生支持Unicode。 字符串長(zhǎng)度限制只和運(yùn)行PHP程序的該臺(tái)計(jì)算機(jī)內(nèi)存大小有關(guān) 定義字符串四種方法 (1)單引號(hào) 只解析單引號(hào)和反斜線 echo 'aaaaaaa'a
a$aaaa'; //aaaaaaa'a
a$aaaa (2)雙引號(hào) 解析字符串中的變量 和特殊含義的字符 轉(zhuǎn)義字符 | 換行(
linux中) windows中(
) | | 回車 | | 水平方向的tab | v | 垂直方向的tab | f | 換頁 |
|
|
$,",[0-7]{1,3} 八進(jìn)制的字符,x[0-9A-Fa-f]{1,2}十六進(jìn)制字符 (3)Heredoc語法結(jié)構(gòu)(變量可以被解析) 常被用來初始化靜態(tài)變量和類的屬性和常量 Eg: Echo <<<EOF($a=<<<EOF) .... EOT;(必須在一行開始的位置) (4)Nowdoc語法結(jié)構(gòu)(變量不被解析)5.3.0加入的 常用來初始化類的屬性或常量 Eg: Echo <<<'EOF'($a=<<<EOF) .... EOT;(必須在一行開始的位置) $a="a";“$a” ,"${a}" (簡(jiǎn)單)或“{$a}”(復(fù)雜) //輸出a 變量解析兩種語法規(guī)則:
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|