溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP編碼規(guī)范

發(fā)布時(shí)間:2020-07-16 11:33:11 來(lái)源:網(wǎng)絡(luò) 閱讀:393 作者:kinrey 欄目:web開發(fā)

PHP編碼規(guī)范


每行代碼的字符數(shù)應(yīng)控制在80以內(nèi)

對(duì)于只含有PHP代碼的文件,將文件結(jié)尾標(biāo)記忽略

縮進(jìn)應(yīng)該能都反映出代碼的邏輯結(jié)果,盡量使用四個(gè)空格


數(shù)據(jù)類型


數(shù)據(jù)類型是具有相同特性的一組數(shù)據(jù)的統(tǒng)稱

數(shù)據(jù)類型用來(lái)區(qū)分不同的數(shù)據(jù);由于數(shù)據(jù)在存儲(chǔ)時(shí)所需要的容量各不相同,不同的數(shù)據(jù)就必須要分配不同大小的內(nèi)存空間來(lái)存儲(chǔ),所以就要將數(shù)據(jù)劃分成不同的數(shù)據(jù)類型。


在PHP中只要涉及到數(shù)據(jù)的地方都會(huì)涉及到數(shù)據(jù)類型。如變量、函數(shù)的參數(shù)及返回值、對(duì)象的屬性等地方都會(huì)涉及到數(shù)據(jù)類型。


PHP支持8種原始數(shù)據(jù)類型和三種偽類型。

其中原始數(shù)據(jù)類型包括:

-標(biāo)量類型(Scalar Type)

boolean(布爾型)

Integer(整型)

float(浮點(diǎn)型)

string(字符串)

-復(fù)合類型(Compound Type)

array(數(shù)組)

object(對(duì)象)

-特殊類型(Special Type)

resource(資源)

NULL(空值)


整型


整型可以使用十進(jìn)制、十六進(jìn)制、八進(jìn)制或者二進(jìn)制表示

-二進(jìn)制數(shù)字,數(shù)字前必須加上0b

-八進(jìn)制數(shù)字,數(shù)字前必須加上0

-十六進(jìn)制數(shù)字,數(shù)字前必須加上0x

如果向八進(jìn)制傳遞了一個(gè)非法數(shù)字,則后面其余數(shù)字都會(huì)被省略


整型的存儲(chǔ)范圍

整型的字長(zhǎng)和平臺(tái)有關(guān)

通常最大值是大約二十億(32位有符號(hào))

64位平臺(tái)下的最大值通常是大約9e18

<?php
echo PHP_INT_MAX;  //輸出Integer的最大值
echo PHP_INT_SIZE; //輸出Integer值的字長(zhǎng)


輸出語(yǔ)句

輸出一個(gè)或多個(gè)字符串可以通過(guò)echo語(yǔ)句實(shí)現(xiàn)

echo語(yǔ)句的語(yǔ)法結(jié)構(gòu)

void echo (string $arg1 [,string $...])

<?php
echo ("Hello World");     //輸出 Hello World
echo "Hello World";      //輸出 Hello World
echo "Hi," , "Hello World"; //輸出 Hi,Hello World
echo 3               //輸出 3,數(shù)字3已經(jīng)被轉(zhuǎn)換成字符串“3”

如果要給echo傳遞多個(gè)參數(shù),不能使用小括號(hào)

所有輸出的參數(shù)都將轉(zhuǎn)換成字符串類型

如果要打印一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息,包括表達(dá)式的類型與值,可以通過(guò)var_dump函數(shù)實(shí)現(xiàn)。

var_dump函數(shù)的語(yǔ)法結(jié)構(gòu):

void var_dump(mixed $expression [,mixed $...])

<?php

var_dump('php'); //輸出string(3)“PHP”
var_dump(4); //輸出int(4)


使用函數(shù)


函數(shù)是一個(gè)被命名的獨(dú)立代碼段。函數(shù)用于執(zhí)行特定任務(wù),并可以給調(diào)用它的程序返回一個(gè)值。

函數(shù)類型有

-系統(tǒng)函數(shù),由PHP核心或特定的函數(shù)庫(kù)提供的函數(shù)

-自定義函數(shù),由用戶根據(jù)需要自定義的函數(shù)

調(diào)用函數(shù)的方法

返回值 函數(shù)名([參數(shù),...])


整型溢出


如果數(shù)字超出integer的范圍,將會(huì)被解釋為float

如果運(yùn)算結(jié)果超出integer范圍,也會(huì)返回float

<?php
$d = 2147483649;
var_dump($d); //輸出float(2147483649)
$n = 2147483640;
var_dump($n); //輸出int(2147483640)
$t = 88;
var_dump($t); //輸出int(88)
$f = $n + $t;
var_dump($f); //輸出float(2147483728)


浮點(diǎn)型


浮點(diǎn)型(也叫浮點(diǎn)數(shù)float,雙精度數(shù)double或?qū)崝?shù)real)

浮點(diǎn)型(float)數(shù)據(jù)的字長(zhǎng)和平臺(tái)相關(guān)

通常最大值是1.8e308并具有14位十進(jìn)制數(shù)字的精度


布爾型


布爾型使用關(guān)鍵字TRUE/FALSE表示。兩者不區(qū)分大小寫

布爾值結(jié)果通常會(huì)被傳遞給控制流程序語(yǔ)句。

<?php
$isHot = true;
$isDeleted = false;
var_dump($isHot); //輸出bool(true)
var_dump($isDeleted); //輸出bool(false)


字符型


字符串string就是由一系列的字符組成,其中沒(méi)個(gè)字符等同于一個(gè)字節(jié)。這意味著PHP只能支持256的字符集,因此不支持Unicode。

string最大可以達(dá)到2GB。


字符串的表達(dá)方式


單引號(hào)

雙引號(hào)

Heredoc語(yǔ)法結(jié)構(gòu)

Nowdoc語(yǔ)法結(jié)構(gòu)

<?php
$str1 = 'PHP';
$str2 = "String";
var_dump($str1); //輸出 string(3)“php”
var_dump($str2); //輸出 string(6)“String”


轉(zhuǎn)義符


屬性值說(shuō)明
\n換行
\r回車
\t水平制表符
\v垂直制表符
\f換頁(yè)符
\\反斜線
\$美元符號(hào)
\'單引號(hào)
\"雙引號(hào)


字符串類型


聲明字符創(chuàng)類型變量,然后輸出

聲明帶有轉(zhuǎn)義符的字符串類型變量,然后輸出,并且通過(guò)查看瀏覽器源代碼查看結(jié)果


轉(zhuǎn)義符的引號(hào)與HTML實(shí)體的引號(hào)

PHP代碼中引號(hào)如果需要直接打印到瀏覽器,那么雙引號(hào)/單引號(hào)就必須采用HTML實(shí)體表示;如果引號(hào)需要在瀏覽器的源代碼中出現(xiàn),那么就必須采用轉(zhuǎn)義符


單引號(hào)和雙引號(hào)的區(qū)別

單引號(hào)只能解析\'和\\;雙引號(hào)可以解析所有轉(zhuǎn)義符。

單引號(hào)內(nèi)變量不能被解析;雙引號(hào)內(nèi)的變量可以被解析。

建議字符串盡量使用單引號(hào)的表示方式。這樣可以提高解析速度


花括號(hào)語(yǔ)法

<?php
$str = 'app';
echo "<p> The $str is the abbreviation of Application</p>";
echo "<p> I bought an $strle</p>";

結(jié)果

The app is the abbreviation of Application

I bought an 

當(dāng)PHP解析器遇到一個(gè)美元符號(hào)($)時(shí),解析器盡量組合多的標(biāo)識(shí)以形成合法的變量名??梢杂没ɡㄌ?hào)來(lái)明確變量名稱的界線。

正確寫法

<?php
$str = 'app';
echo "<p> The {$str} is the abbreviation of Application</p>";
echo "<p> I bought an ${str}le</p>";


string中的字符可以通過(guò)一個(gè)從0開始的下標(biāo),用花括號(hào)包含對(duì)應(yīng)的數(shù)字的形式來(lái)訪問(wèn)和修改。

<?php

$str = 'application';
echo $str{4}; //輸出i
$str{4} = 't';
echo $str{4}; //輸出t

用超出字符串長(zhǎng)度的下標(biāo)寫入將會(huì)拉長(zhǎng)該字符串并以空格填充。非證書類型下標(biāo)會(huì)被轉(zhuǎn)換成整數(shù)。


Heredoc語(yǔ)法結(jié)構(gòu)

<?php
$str = <<< EOD
 Example of string
 spanning multiple lines
 using heredoc syntax
EOD;
?>

結(jié)束時(shí)所使用的標(biāo)識(shí)符必須在該行的第一列。

結(jié)束標(biāo)識(shí)符這行除分號(hào)外,不能包含其他字符。

Heredoc結(jié)構(gòu)可以解析轉(zhuǎn)義符。

Heredoc結(jié)構(gòu)內(nèi)的變量可以被解析。


Nowdoc語(yǔ)法結(jié)構(gòu)

<?php
$str = <<< 'EOD'
 Example of string
 spanning multiple lines
 using heredoc syntax
EOD;
?>

結(jié)束時(shí)所使用的標(biāo)識(shí)符必須在該行的第一列。

結(jié)束標(biāo)識(shí)符這行除分號(hào)外,不能包含其他字符。

Nowdoc結(jié)構(gòu)不進(jìn)行解析操作


復(fù)合類型

允許將多個(gè)相同類型的項(xiàng)聚集起來(lái),表示為一個(gè)實(shí)體。

復(fù)合類型可以存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)


復(fù)合類型的分類

數(shù)組(Array)

對(duì)象(Object)

<?php
$arr = array(34,67,8,25); //數(shù)組
$obj = new stdClass();   //對(duì)象
echo gettype($arr);     //輸出array
echo gettype($obj);     //輸出object
?>


特殊類型

提供某種特殊用途的類型,無(wú)法歸入其他任何類型

特殊類型包括

-空值(NULL)

-資源(Resource)


空值

NULL表示一個(gè)變量沒(méi)有值

在下列情況之一的變量被認(rèn)為是NULL

-沒(méi)有賦值的變量

-變量賦值為NULL

-使用unset函數(shù)銷毀的變量

<?php
var_dump($username); //輸出NULL
$password = null;
var_dump($password); //輸出NULL
$age = 26;
unset($age);
var_dump($age);    //輸出NULL


資源

一種特殊的數(shù)據(jù)類型,用來(lái)表示一種PHP的外部資源,例如數(shù)據(jù)庫(kù)訪問(wèn),文件訪問(wèn)、目錄操作、圖像操作等。

程序員將永遠(yuǎn)無(wú)法直接聲明這種類型的變量,必須通過(guò)專門的函數(shù)訪問(wèn)。


偽類型

本質(zhì)上來(lái)說(shuō)并不是真正的數(shù)據(jù)類型

為說(shuō)明某些情況而“自封”的數(shù)據(jù)類型,包括:

-混合(mixed)

-數(shù)值(number)

-回調(diào)函數(shù)(callback)

-void


混合

mixed說(shuō)明參數(shù)/返回值可以是多種不同類型

mixed不一定是所有數(shù)據(jù)類型

例如:gettype()函數(shù)可以接收所有類型的參數(shù);str_replace()函數(shù)可以接收字符串類型和數(shù)組類型的參數(shù)。

<?php
$i=3;
$n=0.5;
$t='1';
echo gettype($i);
echo gettype($n);
echo gettype($t);


數(shù)值

numbet說(shuō)明參數(shù)/返回值可以是integer或者float

例如:pow()函數(shù)可以接受整型或浮點(diǎn)型的參數(shù);并且返回值的數(shù)據(jù)類型也可能為整數(shù)或浮點(diǎn)數(shù)。

pow函數(shù)用于實(shí)現(xiàn)冪運(yùn)算

語(yǔ)法:number pow(nukber $base,number $exp)

<?php
var_dump(pow(2,8));
var_dump(pow(2.5,2));


回調(diào)函數(shù)

回調(diào)函數(shù)以接受用戶自定義的函數(shù)作為參數(shù)。還可以是一個(gè)對(duì)象的方法,包括靜態(tài)類的方法。


void

void作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)

void作為返回類型意味著函數(shù)的返回值是無(wú)用的

例如:date_default_timezone_get()函數(shù)不接受任何參數(shù)

date_default_timezone_get()函數(shù)用于獲取日期時(shí)間函數(shù)所使用的時(shí)區(qū)

語(yǔ)法:string date_default_timezone_get(void)

<?php
echo date_default_timezone_get();


數(shù)據(jù)類型總匯

PHP編碼規(guī)范


變量處理函數(shù)


變量處理函數(shù)屬于PHP核心的組成部分。也就意味這只要Web服務(wù)器支持PHP即支持變量處理函數(shù)


is_int、is_integer、is_long函數(shù)可以檢測(cè)變量是否是整數(shù)

語(yǔ)法:bool is_int(mixed $var)

<?php
var_dump(is_int(23));  //bool(true)
var_dump(is_int("23")); //bool(false)
var_dump(is_int(23.5)); //bool(false)
var_dump(is_int(NULL)); //bool(false)


變量處理函數(shù)還包括


is_float、is_double、is_real 檢測(cè)變量是否為浮點(diǎn)型

is_string 檢測(cè)變量是否為字符串類型

is_bool、is_boolean 檢測(cè)變量是否為布爾型

is_scalar 檢測(cè)變量是否為標(biāo)量類型

is_arry 檢測(cè)變量是否為數(shù)組

is_object 檢測(cè)變量是否為對(duì)象

is_null 檢測(cè)變量是否為空值

is_resource 檢測(cè)變量是否為資源

is_numeric 檢測(cè)變量是否為數(shù)字或數(shù)字字符串

is_callback 檢測(cè)變量是否為回調(diào)函數(shù)


is_null、empty、isset的區(qū)別


is_null函數(shù)檢測(cè)變量是否為NULL。如果為NULL,返回TRUE,否則返回FALSE

語(yǔ)法:bool is_null(mixed $var)

empty函數(shù)檢測(cè)檢查一個(gè)變量是否為空。如果變量是非空或非零的值,則empty()返回FALSE;否則,返回TRUE

語(yǔ)法:bool empty(mixed $var)

isset函數(shù)御用檢測(cè)變量是否設(shè)置,并且不是NULL

語(yǔ)法:bool isset(mixed $var [,mixed $...])


表達(dá)式gettype($n)is_nullemptyisset
$nNULLtruetruefalse
$n = "";stringfalsetruetrue
$n = null;NULLtruetruefalse
$n = arrary();arrayfalsetruetrue
$n = true;booleanfalsefalsetrue
$n = false;booleanfalsetruetrue
$n = "0";stringfalsetruetrue
$n = 0;integerfalsetruetrue









向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI