【PHP标记的种类】
PHP文件中,若要使用PHP语法,必须将PHP语言放到标记当中,PHP支持如下四中标记方式
①<?php ?> PHP官方推荐写法,也是我们主要采用的写法,这种标签可插入到HTML文档的任意位置
>>>注:如果页面中,只有php语言,推荐省略结束标签 ?>
② <script language="php"></script> 长标记写法,无论何时都可使用,但不推荐这种写法
③<??>短标记风格,可能会与其他语言冲突,不推荐,修改php.ini配置文件开启这种写法
【PHP中的指令分隔符】
1.PHP中的“结构定义语句”(分支,循环,类,函数等{}结尾),不需要使用;结尾
2.PHP中的“功能执行语句”,不用{}结尾的,必须使用;结尾
3.特例:最后结束标签?>的前一条语句可以不用;结尾
【PHP中的变量】
1.PHP中的变量,声明与使用,必须用$开头
2.PHP是一种弱类型语言,变量其实并不需要声明,可以直接给变量赋任何类型的值
3.PHP中可以使用连等同时声明多个变量,如:$num1=$num2=$num3=5。不能用,分隔
4.常用变量函数:
unset() 删除并释放变量
isset() 检测变量是否设置·
empty() 检测变量是否为空(未设置或值为null都算空)
5.变量的命名:只能有字母,数字,下换线组成,开头不能是数字,且PHP变量区分大小写,
但PHP内置函数或类名不区分大小写
6.PHP数据类型(8种)
4种变量类型:Boolean,整形Integey,浮点型float/double,字符串string
2种复合类型:数组Array 对象Object
2种特殊类型:资源Resource 空null
7.整型的范围:-2^31~(2^31-1),超过这个范围,自动转为浮点型
【PHP中算false的情况】
1.Boolean false
2.整形 0
3.浮点型0.0
4.字符串 "" "0" ("0.0" "000" 都算对,只有一个0算错)
5.空数组
6.null和尚未定义的变量
7.所有资源都算对!!
【PHP中字符串的声明】
PHP支持三种方式声明字符串:
①' ':
②" ":
③<<<(定界符):$str=<<<s(定界标识符)
//定界符声明字符串,通过<<<(定界标识符)开始
//遇到顶格的定界标识符结束!!不能有空格!!!
//定界标识符可为任意字母,只需要开始和结束保持一致即可
s;
④三种声明方式的区别:
a.定界符功能,默认与双引号相同
b.单引号中不能解析变量,而双引号,定界符都可以解析变量
注:双引号解析变量时,需注意变量名后需用空格与其他字符分隔,或者用{}将变量名包裹起来
"haha{$num}123","haha${num}123"均可
c.单引号中可放双引号,双引号中可放单引号,但不能放自身类型相同的引号
d.单引号中不能使用转义字符(除了单引号'本身,转义符本身),双引号中,可以使用转义符
【PHP中的伪类型】
伪类型:并不是一种真实存在的数据类型,它的存在,仅仅是告诉程序员可为哪种,哪些数据类型,常用于写帮助文档时使用
mixed:代表参数可为多种不同数据类型
number:代表参数可以是Integer或者Float
callback:代表参数可以是一个回调函数
【PHP中的数据转换类型】
1.自动类型转换:表示运算的时候,Boolean,null,string等类型,会自动先转为Integer或Float类型
null→0 true→1 false→0
String类,"abc"→0 "123a"→123 "a123"→0
2.强制类型转换:根据我们的需要,强制将变量转为其他类型的变量
① 使用()声明新类型强转
$新变量=(新类型)$原类型; $str=(String)1;
//新类型,可使用全拼,也可使用缩写,Integer/int Boolean/bool都行
可以强制转换的类型如下:
(int),(integer)-转换为整型
(bool),(boolean)-转换为布尔型
(float),(double),(real)-转换为浮点型
(string)-转换为字符串
(array)-转换为数组
(object)-转换为对象
② 使用setType();函数强转:
bool setType(mixed var,String type);第一个参数表示任何类型的变量,第二个参数表示字符串类型的数据类型,返回boolean结果
③ 两种转换的区别是:
第①种,将转换之后的结果,赋给新的变量
第②种,直接修改了原变量的数据类型
【PHP中的输出语句】
echo "......";输出变量的值
var_dump(num);输出变量的数据类型和值[&一些其他信息]
print_r(arr);专门打印数组
【PHP中的常量】
1.常量的定义: bool define(String 常量名,mixed 常量值[,bool 是否区分大小写])
2.常量的注意事项:
① 常量定义,只能使用define()函数
② 常量名,不能带$符号,原则上要求使用大写
③ 常量声明后,默认全局范围内有效,没有作用域之说
④ 常量不能删改,unset,setType等函数均无效
⑤ 常量默认区分大小写,在声明常量时,将define函数第三个参数设置为true,改为忽略大小写
⑥ 常量必须定义后才能使用,如果使用未声明的常量,则默认转为常量字符串,但是,会报警告
var_dump(NUM);→String "NUM"
⑦ 常量的值,只能是Boolean String Float Integer
3.可以使用echo constant("NUM")读取常量的值
可以使用get_defined_constants()找出所有常量,包括系统常量
【运算符】1.算术运算符: + - * / % ++ --
2.赋值运算符:
= += -= *= /= %= .=(连接字符串)
3.比较运算符
> < >= <= == === <>,!= !==
==:要求值相等,而不需要数据类型相等
===:要求值和数据类型都一样
!=:只比较值,值相等为false
!==:比较值和类型
4.逻辑运算符
and/&& or/|| not/! xor
xor:逻辑异或。两边只有一个对的,结果为true,两边同为true或同为false,结果都为false
&&和||进行运算时,会发生短路:当左侧能判断出结果的时候,便不再执行右侧!
(&&左侧为假,结果为假,与左侧为真,结果为真)
5.位运算符
将10进制转为2进制,然后再进行计算
&:按位与,转成二进制后,两个都1,结果才为1;
|:按位或,转成二进制后,有一个为1,就是1
^:按位异或,转成二进制后,两个不相同为1,两个都为1,或都为0,结果均为0
~:按位取反,转成二进制后,所有位数取反,1→0,0→1
<<:左移,转成二进制后,左移几位,右边空余位数补0
>>:右移,转成二进制后,右移几位,左边空余几位补0
6.其他运算符:
判断语句?执行语句1:执行语句2
` `:调用系统dos环境下的命令行并执行,但是由于不安全且跨平台性差,不推荐使用
@:错误信息控制符,可以临时屏蔽到一些小的错误信息,但是不提倡使用
【可变变量】
在一个变量名面前,再加一个$符号,即可将原变量的值作为新变量的名字
【取址符号】
&:变量名前加&可以取出变量在内存中的地址,并将地址赋给新变量
$num2=&$num1;//取出num1的地址给num2,相当于引用数据类型,num2和num1的值会绑定