温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP编码规范

发布时间:2020-07-16 11:33:11 来源:网络 阅读:386 作者:kinrey 栏目:web开发

PHP编码规范


每行代码的字符数应控制在80以内

对于只含有PHP代码的文件,将文件结尾标记忽略

缩进应该能都反映出代码的逻辑结果,尽量使用四个空格


数据类型


数据类型是具有相同特性的一组数据的统称

数据类型用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所以就要将数据划分成不同的数据类型。


在PHP中只要涉及到数据的地方都会涉及到数据类型。如变量、函数的参数及返回值、对象的属性等地方都会涉及到数据类型。


PHP支持8种原始数据类型和三种伪类型。

其中原始数据类型包括:

-标量类型(Scalar Type)

boolean(布尔型)

Integer(整型)

float(浮点型)

string(字符串)

-复合类型(Compound Type)

array(数组)

object(对象)

-特殊类型(Special Type)

resource(资源)

NULL(空值)


整型


整型可以使用十进制、十六进制、八进制或者二进制表示

-二进制数字,数字前必须加上0b

-八进制数字,数字前必须加上0

-十六进制数字,数字前必须加上0x

如果向八进制传递了一个非法数字,则后面其余数字都会被省略


整型的存储范围

整型的字长和平台有关

通常最大值是大约二十亿(32位有符号)

64位平台下的最大值通常是大约9e18

<?php
echo PHP_INT_MAX;  //输出Integer的最大值
echo PHP_INT_SIZE; //输出Integer值的字长


输出语句

输出一个或多个字符串可以通过echo语句实现

echo语句的语法结构

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,数字3已经被转换成字符串“3”

如果要给echo传递多个参数,不能使用小括号

所有输出的参数都将转换成字符串类型

如果要打印一个或多个表达式的结构信息,包括表达式的类型与值,可以通过var_dump函数实现。

var_dump函数的语法结构:

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

<?php

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


使用函数


函数是一个被命名的独立代码段。函数用于执行特定任务,并可以给调用它的程序返回一个值。

函数类型有

-系统函数,由PHP核心或特定的函数库提供的函数

-自定义函数,由用户根据需要自定义的函数

调用函数的方法

返回值 函数名([参数,...])


整型溢出


如果数字超出integer的范围,将会被解释为float

如果运算结果超出integer范围,也会返回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)


浮点型


浮点型(也叫浮点数float,双精度数double或实数real)

浮点型(float)数据的字长和平台相关

通常最大值是1.8e308并具有14位十进制数字的精度


布尔型


布尔型使用关键字TRUE/FALSE表示。两者不区分大小写

布尔值结果通常会被传递给控制流程序语句。

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


字符型


字符串string就是由一系列的字符组成,其中没个字符等同于一个字节。这意味着PHP只能支持256的字符集,因此不支持Unicode。

string最大可以达到2GB。


字符串的表达方式


单引号

双引号

Heredoc语法结构

Nowdoc语法结构

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


转义符


属性值说明
\n换行
\r回车
\t水平制表符
\v垂直制表符
\f换页符
\\反斜线
\$美元符号
\'单引号
\"双引号


字符串类型


声明字符创类型变量,然后输出

声明带有转义符的字符串类型变量,然后输出,并且通过查看浏览器源代码查看结果


转义符的引号与HTML实体的引号

PHP代码中引号如果需要直接打印到浏览器,那么双引号/单引号就必须采用HTML实体表示;如果引号需要在浏览器的源代码中出现,那么就必须采用转义符


单引号和双引号的区别

单引号只能解析\'和\\;双引号可以解析所有转义符。

单引号内变量不能被解析;双引号内的变量可以被解析。

建议字符串尽量使用单引号的表示方式。这样可以提高解析速度


花括号语法

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

结果

The app is the abbreviation of Application

I bought an 

当PHP解析器遇到一个美元符号($)时,解析器尽量组合多的标识以形成合法的变量名。可以用花括号来明确变量名称的界线。

正确写法

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


string中的字符可以通过一个从0开始的下标,用花括号包含对应的数字的形式来访问和修改。

<?php

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

用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非证书类型下标会被转换成整数。


Heredoc语法结构

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

结束时所使用的标识符必须在该行的第一列。

结束标识符这行除分号外,不能包含其他字符。

Heredoc结构可以解析转义符。

Heredoc结构内的变量可以被解析。


Nowdoc语法结构

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

结束时所使用的标识符必须在该行的第一列。

结束标识符这行除分号外,不能包含其他字符。

Nowdoc结构不进行解析操作


复合类型

允许将多个相同类型的项聚集起来,表示为一个实体。

复合类型可以存储多个数据项


复合类型的分类

数组(Array)

对象(Object)

<?php
$arr = array(34,67,8,25); //数组
$obj = new stdClass();   //对象
echo gettype($arr);     //输出array
echo gettype($obj);     //输出object
?>


特殊类型

提供某种特殊用途的类型,无法归入其他任何类型

特殊类型包括

-空值(NULL)

-资源(Resource)


空值

NULL表示一个变量没有值

在下列情况之一的变量被认为是NULL

-没有赋值的变量

-变量赋值为NULL

-使用unset函数销毁的变量

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


资源

一种特殊的数据类型,用来表示一种PHP的外部资源,例如数据库访问,文件访问、目录操作、图像操作等。

程序员将永远无法直接声明这种类型的变量,必须通过专门的函数访问。


伪类型

本质上来说并不是真正的数据类型

为说明某些情况而“自封”的数据类型,包括:

-混合(mixed)

-数值(number)

-回调函数(callback)

-void


混合

mixed说明参数/返回值可以是多种不同类型

mixed不一定是所有数据类型

例如:gettype()函数可以接收所有类型的参数;str_replace()函数可以接收字符串类型和数组类型的参数。

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


数值

numbet说明参数/返回值可以是integer或者float

例如:pow()函数可以接受整型或浮点型的参数;并且返回值的数据类型也可能为整数或浮点数。

pow函数用于实现幂运算

语法:number pow(nukber $base,number $exp)

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


回调函数

回调函数以接受用户自定义的函数作为参数。还可以是一个对象的方法,包括静态类的方法。


void

void作为参数列表意味着函数不接受任何参数

void作为返回类型意味着函数的返回值是无用的

例如:date_default_timezone_get()函数不接受任何参数

date_default_timezone_get()函数用于获取日期时间函数所使用的时区

语法:string date_default_timezone_get(void)

<?php
echo date_default_timezone_get();


数据类型总汇

PHP编码规范


变量处理函数


变量处理函数属于PHP核心的组成部分。也就意味这只要Web服务器支持PHP即支持变量处理函数


is_int、is_integer、is_long函数可以检测变量是否是整数

语法: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)


变量处理函数还包括


is_float、is_double、is_real 检测变量是否为浮点型

is_string 检测变量是否为字符串类型

is_bool、is_boolean 检测变量是否为布尔型

is_scalar 检测变量是否为标量类型

is_arry 检测变量是否为数组

is_object 检测变量是否为对象

is_null 检测变量是否为空值

is_resource 检测变量是否为资源

is_numeric 检测变量是否为数字或数字字符串

is_callback 检测变量是否为回调函数


is_null、empty、isset的区别


is_null函数检测变量是否为NULL。如果为NULL,返回TRUE,否则返回FALSE

语法:bool is_null(mixed $var)

empty函数检测检查一个变量是否为空。如果变量是非空或非零的值,则empty()返回FALSE;否则,返回TRUE

语法:bool empty(mixed $var)

isset函数御用检测变量是否设置,并且不是NULL

语法:bool isset(mixed $var [,mixed $...])


表达式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问一下细节
推荐阅读:
  1. 编码规范
  2. C++编码规范

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI