php的标签风格
XML风格
<?php
echo"XML风格";
?>
脚本风格
<script language ="php">
echo'脚本风格';
</script>
简短风格
<?echo'简短风格';?>
ASP风格
<%
echo'ASP风格';
%>
PHP注释
对代码的说明
一般放在代码的上方或尾部
不影响代码的执行
单行注释
上方单行注释
<?php
//上方单行注释
echo’c++风格注释’;
?>
后方单行注释
<?php
echo’c++风格注释’;//后方单行注释
?>
<?php
echo'看到了'//?>没有看到
?>
多行注释
块注释
<?php
/*
$a=1;
$b=2;
echo($a+$b);
*/
echo'多行注释';
?>
文档注释
<?php
/*说明:项目工具类
*作者:单飞阳
*Email:2695494301@qq.com
*/
class Util
{
/**
* 方法说明:给字符串加前缀
*参数: String $str
*返回值: String
*/
function addPrefix($str)
{
$str.='mingri';
return $str;
}
}
?>
风格的注释
例:
<?php
echo’这是#风格的注释’;
?>
PHP的数据类型
八种原始类型。
4种标量类型 ,即boolean(布尔型)、integer(整型)、float/double(浮点型)和string(字符串型);
2种复合类型,即array(数组型)和object(对象);
2种特殊类型,即resource(资源)和null。
标量数据类型
最基本的数据结构
只能存储一个数据
4种
类型 | 说明 | 注释 |
---|---|---|
boolean(布尔型) | 只有两个值,真(true)和假(false) | 最简单的类型 |
string(字符串型) | 计算机所能表示的一切字符的集合 | 连续的字符序列 |
integer(整型) | 只包含整数,可正可负 | |
float(浮点型) | 存储小数和数字 | 有小数位 |
布尔型(boolean)
仅保存true或false
true和false是PHP的内部关键字
设定一个布尔型变量,只需将true或false赋值给变量即可
布尔型变量通常出现在条件或循环语句的表达式中
例:
<?php
$boo=true;//声明一个boolean类型变量,赋初值true
if($boo==true)
echo'$boo为真';
else
echo'$boo为假';
?>
结果:$boo为真
字符串型(string)
连续的字符序列(可为数字,字母和符号)
每个字符只占用一个字节
3种定义字符串的方式
单引号(‘)
双引号(“)
定界符(<<<)
单引号和双引号的区别
1.
输出内容的不同
<?php
$i='小混蛋';
echo"任远洋$i";
echo"<p>";
echo'$i';
?>
结果:
任远洋小混蛋
$i
2.
转义字符的使用
例:想输出单引号,使用单引号时,只需对单引号转义即可,
使用双引号时,还需要注意“””、“$”等字符的使用
特殊字符都需要转义符“\”来
转义字符 | 输出 | 注释 |
---|---|---|
\n | 换行 | (LF或ASCII字符0x0A(10)) |
\r | 回车 | (CR或ASCII字符0x0D(13)) |
\t | 水平制表符 | (HT或ASCII字符0x09(9)) |
\\ | 反斜杠 | |
\$ | 美元符号 | |
\‘ | 单引号 | |
\‘’ | 双引号 | |
\[0-7]{1,3} | 此正则表达式序列匹配一个用八进制符号表示的字符 | 如:\467 |
\x[0-9A-Fa-f]{1,2} | 此正则表达式序列匹配一个用十六进制符号表示的字符 | 如:\x9f |
定界符
后接一个标识符
字符串
同样的标识符结束字符串
例:
<?php
$i='小混蛋';//声明变量$i
echo<<<std
双引号可以输出\$i使用单引号也可以输出<p>
\$i是个优美的词语:$i
std;
?>
整型(integer)
只包含整数
整型数可以用十进制、八进制和十六进制
<?php
$str1=14213;//十进制
$str2=0x14213;//
$str3=14213;//
$str4=14213;
echo'数字不同进制的输出结果:<p>';
echo'十进制:'.$str1.'<br>';
echo'十六进制:'.$str2.'<br>';
echo'八进制:';
if($str3==$str4)
{
echo'$str3=$str3='.$str3;
}
else
{
echo'$str3!=$str4=';
}
?>
结果:
数字不同进制的输出结果:
十进制:54188
十六进制:344456
八进制:1240610
浮点型(float)
标准格式
科学计数法格式
3.58E1E1
849.72E-3
<?php
echo'三种方法输出圆周率的值<p>'
echo'第一种:pi()='. pi().'<p>';
echo'第二种:3.14159265359='. 3.14159265359.'<p>';
echo'第三种:314159265359E-11='. 314159265359E-11.'<p>';
?>
复合数据类型
数组和对象
类型 | 说明 | |
---|---|---|
数组 | 相同类型变量集合 | array |
对象 | 类的实例,使用new命令创建 | object |
数组
组织一系列的数据
形成可操作的整体
数组中的每一个数据也称一个元素
元素
元素由索引和值组成
索引由数字或字符串组成
值可是多种数据类型
定义数组
语法格式:
$array=array(‘value1,’value2’…)//第一种
$array[key]=’value’//第二种
$array=array(key=>value1,key2=>value2…)//第三种
实例:
$arr1=array('This','is','an','example');
$arr2=array(0=>'php',1=>'is','the'=>'the','str'=>'best');
$arr3[0]='tmpname';
对象
特殊数据类型
类型 | 说明 | |
---|---|---|
资源 | 一种特殊变量,保存了到外部资源的一个引用,是通过专门的函数来建立和使用的 | 也称句柄,resource |
空值 | 特殊的值,表示变量只有一个null的值 | null |
资源
PHP4引进
使用资源时,系统会自动启用垃圾回收机制,释放不再使用的资源,避免内存消耗
空值
没有为该变量设置任何值
不区分大小写
赋空值的情况:
1.变量还未赋值
2.被赋值null
3.被unset()函数处理过的变量
<?php
$string1=null;//$string1被赋空值
$string3="str";
if(!isset($string1))//判断$string1是否被设置
echo"string1=null<p>";
if(!isset($string2))
echo"string2=null<p>";
unset($string3);
if(!isset($string3))//unset
echo"string3=null<p>";
?>
结果:string1=null
string2=null
string3=null
数据类型转换
变量前加上用括号括起来的类型名称
转换操作符 | 转换类型 | 例子 | 注释 |
---|---|---|---|
(boolean) | 转换成波尔型 | (boolean)$num | null、0和未赋值变量或数组变成false,其他的为true |
(string) | 转换成字符串型 | (string)$boo | 数字开头的字符串转换成整型或浮点型,把数字部分转换成整型,舍去后面的字符串;如果其中有小数,转换成整型的时候,就舍弃小数,转换成浮点型的不舍弃小数 |
(integer) | 转换成整型 | (integer)$boo | false转换成0,true转换成1,浮点型的小数部分被省略,数字开头的字符型被截取非数字部分,全字符的输出为0 |
(float) | 转换成浮点型 | (float)$str | |
(array) | 转换成数组型 | (array)$str | |
(object) | 转换成对象 | (object)$str |
settype函数实现数据类型转换
形式:bool settype(mixed var,string type)
var是指定变量,type是指定类型,
将指定的变量转换成指定的数据类型,然后返回Boolean型数值
只能转变一个变量
<?php
$num='5.4188renyuanyang';//声明一个字符串变量
echo'变量的值:'.$num;
echo'<p>';
echo(integer)$num;
echo'<p>';
echo settype($num,'integer');
echo'<p>';
echo'变量的值改变为:'.$num;
?>
检测数据类型
PHP内置检测数据类型的系列函数,如果数据与其类型符合,返回true
不符合,返回false
函数 | 检测类型 | 例子 |
---|---|---|
is_bool | 检测变量是否为布尔类型 | is_bool(true) |
is_string | 检查变量是否为字符串类型 | is_string(‘string’)、is_string(1234) |
is_float/is_double | 检查变量是否为浮点型 | is_float(5.4188)、is_float(‘5.4188’) |
is_integer/is_int | 检查是否为整数 | is_integer(34)、is_integer(‘34’) |
is_null | 检查变量是否为null | is_null(null) |
is_array | 检查变量是否为数组类型 | is_array($arr) |
is_object | 检查变量是否为一个对象类型 | is_object($obj) |
is_numeric | 检查变量是否为数字或有数字组成的字符串 |
<?php
$boo="54188";
if(is_numeric($boo))
echo"Yes"
else
echo"Sorry,this is an error!";
?>
PHP常量
定义变量
常量被定义后,在脚本的其他地方是不能改变的
由英文字母、下画线和数字组成
使用define()函数定义常量
语法格式:define(string constant_name,mixed value)
参数 | 说明 |
---|---|
constant_name | 必选参数,常量名称,(标识符) |
value | 必选参数,常量的值 |
获取常量
1.使用常量名直接获取值,
2.使用constant()函数
使用constant()函数获取变量
语法格式:mixed constant(string const_name)
其中:const_name是要获取常量的名称,
也可为储存常量名的变量
如果成功,返回常量的值
失败,提示错误信息常量没有被定义
<?php
define("a","我是你爸爸");
echo a."<br>";
define("b","你是我失散多年的儿子");
echo b."<br>";
define("c","任远洋,我的好大儿");
$d=c;
echo constant($d).'<br>';
echo(defined("b"))."<br>";
?>
预定义常量
常量名 | 功能 |
---|---|
FILE | 默认常量,PHP程序文件名 |
LINE | 默认常量,PHP程序行数 |
PHP_VERSION | 内建常量,PHP程序的版本,如php.6.0.0-dev |
PHP_OS | 内建常量,执行PHP解析器的操作系统名称,如Windows |
TRUE | 该常量是一个真值(true) |
FALSE | 该常量是一个假值(false) |
NULL | 一个null值 |
E_ERROR | 该常量指向最近的错误处 |
E_WARNING | 该常量指向最近的警告处 |
E_PARSE | 该常量指向解析语法有潜在问题处 |
E_NOTICE | 该常量为发生不寻常处的提示但不一定是错误处 |
<?php
echo"这个文件的路径:".__FILE__.'<br>';
echo"这个文件有".__LINE__."行".'<br>';
echo"当前PHP的版本为:".PHP_VERSION.'<br>';
echo"当前操作系统为:".PHP_OS;
?>
PHP变量
程序执行的过程中数值可以变化的量
通过一个变量名来标识
借助变量名可访问内存中的数据
变量的声明及使用
PHP中使用变量不需要声明变量
直接给变量赋值
变量名用$和标识符表示
标识符由字母、数字或下画线组成
直接赋值
<?php
$name='任远洋';
echo"我的儿子:".$name;
?>
错误命名
<?php
$54188_wodehaodaer="任远洋";
$@renyuanyang="我的儿子";
?>
变量间的赋值
赋值后的两个变量使用各自的内存
互不干扰
<?php
$string1="任远洋是我的好大儿";
$string2="任远洋是我的好闺女";
$string1=$string2;
$string1="任远洋是我的好孙子";
echo"$string2";
?>
引用赋值
使用$符号表示引用
<?php
$a="任远洋在厕所吃饭";
$b=&$a;
$b="任远洋吃屎";
echo"$b".'<br>';
echo"$a";
?>
注:引用与复制的区别:
引用相当于起了个别名
赋值相当于把原内容复制,开辟一个新内存空间保存
变量作用域
作用域 | 说明 |
---|---|
局部变量 | 在函数内部定义的变量,仅在所在函数中有意义 |
全局变量 | 定义在所有函数外,在整个PHP文件中有意义,在用户自定义的函数中需要使用global关键词声明方可使用 |
静态变量 | 函数调用结束后保留变量值,需要使用static声明变量 |
<?php
$a="全局变量";
function example()
{
$a="局部变量";
echo"$a".'<br>';
}
example();
echo "$a";//等同于echo$a;
?>
静态变量在很多地方能用到
记录浏览空间的人数,
记录用户的聊天记录等
<?php
function hanshu1()
{
static $a=0;
$a+=1;
echo $a." ";
}
function hanshu2()
{
$a=0;
$a+=1;
echo $a." ";
}
for($b=0;$b<10;$b++) hanshu1();
echo'<br>';
for($b=0;$b<10;$b++) hanshu2();
echo'<br>';
?>
可变变量
可以动态改变变量的名称
该变量的名称由另一个变量的值确定
在变量前多加一个美元符号“$”
<?php
$a="b";
$b="吴晓辉我的好大儿";
$c="a";
echo $b.'<br>';
echo $$a.'<br>';
echo $$$c.'<br>';
?>
PHP预定义变量
可以获取用户会话
操作系统的环境和本地操作系统的环境等信息
变量的名称 | 说明 | 注释 |
---|---|---|
$_SERVER[‘SERVER_ADDR’] | 当前运行脚本所在的服务器的IP地址 | |
$_SERVER[‘SERVER_NAME’] | 当前运行脚本所在服务器主机的名称 | 如果在虚拟机上,则是虚拟主机所设置的值 |
$_SERVER[‘REMOTE_METHOD’] | 访问页面时的请求方法 | 如:GET、HEAD、POST、PUT等,如果是HEAD,脚本在送出头信息后中止即在产生任何输出后,不再有输出缓冲。 |
$_SERVER[‘REMOTE_ADDR’] | 正在浏览当前页面用户的IP地址 | |
$_SERVER[‘REMOTE_HOST’] | 正在浏览当前页面用户的主机名 | 反向域名解析基于该用户的REMOTE_ADDR |
$_SERVER[‘REMOTE_PORT’] | 用户连接到服务器时所使用的端口 | |
$_SERVER[‘SCRIPT_FILENAME’] | 当前执行脚本的绝对路径名 | 脚本在CLI中被执行,该变量将包含用户指定的相对路径 |
$_SERVER[‘SERVER_PORT’] | 服务器所使用的端口,默认80 | 如果使用SSL连接,这个是为用户设置的HTTP端口 |
$_SERVER[‘SERVER_SIGNATURE’] | 包含服务器版本和虚拟主机名的字符串 | |
$_SERVER[‘DOCUMENT_ROOT’] | 当前运行脚本所在的文档根目录 | 在服务器配置文件中定义 |
$_COOKIE | 通过HTTPCookie传递到脚本的信息 | cookie多数时通过setcookie()函数设置 |
_SESSION | 包含与所有会话变量有关的信息 | $_SESSION变量主要用于会话控制和页面之间值的传递 |
$_POST | 包含通过POST方法传递的参数的相关信息 | 主要用于获取通过POST方法提交的数据 |
$_GET | 包含通过GET方法传递的参数的相关信息 | 主要用于获取通过GET方法提交的数据 |
$GLOBALS | 由所有已定义全局变量组成的数组 | 变量名就是索引。该变量是所有超级变量的超级集合 |
PHP运算符
对象是变量、常量或数据
主要包括算数运算符、
字符串运算符、
赋值运算符、
位运算符、
逻辑运算符、
比较运算符、
递增或递减运算符
条件运算符
算术运算符
字符串运算符
赋值运算符
注:
操作 | 符号 | 意义 |
---|---|---|
除 | /= | 左边的值除以右边的值 |
连接字符 | .= | 将右边的字符加到左边 |
取余数 | %= | 将左边的值对右边取余数 |
递增或递减运算符
位运算符
对二进制从地位到高位对齐后进行运算
符号 | 作用 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
<< | 向左移位 |
>> | 向右移位 |
<?php
$m=8;
$n=12;
$mn=$m&$n;
echo $mn.' ';
$mn=$m|$n;
echo $mn.' ';
$mn=$m^ $n;
echo $mn.' ';
$mn=~ $m;
echo $mn.' ';
?>
逻辑运算符
运算符 | 结果为真 |
---|---|
&&或and(与) | 当两个都为真的时候为真 |
||或or(或) | 一个为真即可 |
xor(异或) | 两个符合一真一假 |
注:&&、||与其他的逻辑运算符为同级,都比and和or的优先级高
比较运算符
运算符 | 说明 |
---|---|
=== | 恒等于 |
!== | 非恒等于 |
<?php
$a=100;
var_dump($a==true);//boolean true
var_dump($a===true);//boolean true
var_dump($a===100);//boolean false
var_dump(10/2.0!==5);//boolean true
条件运算符
?:
三目运算符
根据一个表达式决定选择另外两个表达式中的哪一个
最好放在括号中使用
<?php
$a=100;
echo($a==true)?"任远洋大傻逼":"吴晓辉大傻逼";//结果是任远洋大傻逼
?>
运算符的优先性
PHP的表达式
PHP函数
定义和调用函数
定义函数
function fun_name($str1,$str2,...,$strn)
{
fun_body;
}
其中:function为声明自定义函数时必须使用的关键字
fun_name是自定义函数的名称
$str1,$str2,…,$strn是函数的参数
调用函数
在函数之间传参
按值传递
<?php
function jiafa($m)
{
$m=$m*5+10;
echo"定义函数里的结果:".$m;
}
$m=54188;
jiafa(5418);
jiafa(54188);
jiafa($m);
?>
按引用传递
<?php
function jiafa(&$a)
{
$m=$m*5+10;
echo"函数内的结果".$m;
}
$m=54188;
jiafa($m);
?>
默认参数方式
指定某个参数为可选参数,
把可选参数放在参数列末尾
给它一个默认值
<?php
function jiafa($m,$n=0)
{
$m=$n+($m+$n);
echo"\$m运算后=$m<p>";
}
jiafa(54188,54199);
jiafa(54188);
?>
结果:
m 运算后=162586
m 运算后=54188
从函数中返回值
使用return
return只能返回一个参数,如果要返回多个结果,就需要在函数中定义一个数组
将返回值储存在数组中返回
变量函数
通过改变变量名,并在变量名后加上一对小括号来实现函数调用
<?php
function yi()
{
echo"好大儿是任远洋<br>";
}
function er($a="吴晓辉")
{
echo"好大儿是$a<br>";
}
function san($b)
{
echo"$b,都是好大儿<br>";
}
$a="yi";
$a();
$a="er";
$a("任远洋");
$a="san";
$a("他们两个");
?>
PHP编码规范
缩进
大括号
关键字、小括号、函数、运算符
小括号与关键字之间有空格
小括号与函数紧贴
运算符与两边变量或表达式之间有一个空格
代码段大的时候,两个代码块之间使用一个空行
不要在return返回语句中使用小括号
PHP命名规则
类命名
类属性命名
以m为前缀
前缀m后采用与类命名一致的规则
m在名字开头起修饰作用,就像以r开头表示引用一样
方法命名
一般名称前缀和后缀有一定规律,如:Is(判断)、Get(得到)、Set(设置)
class StartStudy
{
$mLessonOne=" ";
function GetLessonOne()
{
}
}
方法中参数的命名
第一个字符使用小写字母
在首字符后的所有字符按类命名规则首字符大写
变量命名
引用变量
有r前缀
class Example
{
$mExam = " ";
function SetExam(&$rExam)
{
}
function &rGetExam()
{
}
}
全局变量
常量/全局变量
静态变量
函数命名
全部小写
多个单词之间用”_”分隔