PHP变量
命名规范
Ø 必须以$符开始
Ø 声明变量时一般使用英文,也可以使用数字,但是不能以数字开头。
Ø 不可以使用特殊字符,但是下划线_除外
Ø 变量名严格区分大小写
可变变量
Ø 可变变量只是变量的一种,可以在开头连续使用多个$符号
Ø 理论上$可以无限使用,实际中一般指使用2个$
Ø 结合方式:结合方式是从右到左依次结合一个$
引用赋值
变量2=&变量1
更改其中一个变量(1 也好2也罢) 剩下那个变量也会跟着更改这就是引用赋值
相关功能
Ø 删除变量的功能 unset();
Ø 检测变量是否设置值 isset();
u 只要赋值,且不是null的数据那么检测结果都为true
u 如果变量为赋值或者赋值为null 那么检测结果为false
Ø 检测变量值为空的功能:empty();
int 0
float 0.0
string ''和0
booleam false
array 空数组
object 对象都不为空
resource 资源都不为空
null 本身就为空
返回true表示变量为空,返回false表示变量不为空
PHP常量
常量的概述
通常不会改变的量就是常量
常量的定义
Ø define('常量名','常量值',ture/false);
注意:第三个参数是可选参数,默认false
注意事项:
u 常量名:
常量名开头不可以使用$;
声明常量不要使用中文,要用使用英文,推荐大写
可以使用数字,但是不能以数字开头
不可以使用特殊字符,除了下划线
常量名要有意义
常量是否区分大小写,有define的第三个参数决定。true是不区分大小写,默认false,区分大小写。
u 常量值:
PHP版本<7 常量的值仅能在标量中选取
PHP版本>=7 常量的值仅能在标量或者数组中选取
Ø PHP版本>5.3之后可以使用
使用 const关键字声明常量
格式:const常量名=常量值
该方法只有声明和define不同,其他规则都相同。
Ø 区别:
const不能再流程控制中定义,而define 可以定义
记住:
u 只要不在类中声明常量其他地方都使用define
u 如果在类中声明常量则使用const来定义
常量的特点
Ø 常量一旦定义就不可以在改变其值.
Ø 常量习惯上使用大写
Ø 常量如果声明就要有值。如果不声明就将该常量名称,当做字符串来处理
系统的魔术常量
Ø __FILE__ 表示当前文件相对于系统的绝对路径
Ø __LINE__ 表示当前常量所在的行
Ø __FUNCTION__ 可以在函数中获取当前函数的名称
Ø __CLASS__ 表示当前常量所在的class的名称
Ø __METHOD__ 表示当前常量所在的类和方法名
相关的几个功能
Ø constant() 获取一个常量值的功能
作用:和echo差不多,但当一个常量名是一个字符串的时候,才能发挥
constant的作用。
格式:
返回常量值=constant()
Ø get_defined_constants() 获取当前定义的所有常量集合,返回一个数组
Ø defined() 检测一个常量是否被定义
格式:
返回结果变量=defined('检测的常量名')
其返回值为布尔值。
PHP运算符
注意:运算符的两边要给个空格。增加代码的可读性。
字符串运算符
在PHP中字符串运算符就是用来连接字符串的符号,在PHP中只有一个.(英文状态下的点)
赋值运算符
= 普通赋值运算符 为变量和常量赋值
+= 加法赋值运算符
$num = 10;
$num += 5;
//完成格式$num=$num+5;
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
.= 字符串赋值运算符
比较运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于 只判断值,不判断类型
!= 不等于 值不相等就为真
=== 全等于 值和类型都相等
!== 非全等于 除了全等其余都是非全等
算术运算符
+ - * /
%(求余或取模)
++(自增运算)
--(自减运算)
自增自减运算需要注意事项:
u 自增或者自减运算就是在原值的基础上进行+1或者-1的操作
u 在进行自增或者自减运算时,运算符符号可以在变量前也可以在变量后,但是意义不一样
u 如果自增或者自减的运算符在变量前,表示先将当前变量进行+1操作,然后使用该变量。如果运算符在变量后,则表示先使用当前变量在进行自增或者自减运算。
(一定要理解先使用在进行。
比如:$a=15
$b=10
$c=$a++ + $b++
// ++在后先使用 则$c=15+10 $a=16 $b=11)
u 自增自减运算对布尔值无效,一般也不用与数组、对象、资源等类型。常用与整型
逻辑运算符
Ø 逻辑与运算 && 或者 and (一般用&&,因为and的优先级比&&的低)
两个值都为真时,结果为真。其余情况都为假。
Ø 逻辑或运算 || 或者 or (也有优先级的高低)
u 两个值有一个为真,结果就为真。
u 只有两个值都为假时,结果才为假。
Ø 逻辑非运算 ! 或者 not(一般不用not)(也有优先级高低的问题)
在变量前面 ! 真变假,假变真。
Ø 逻辑异或运算 xor
相同为假 不同为真。
位运算符
位运算符是在二进制的基础上进行的。
Ø 按位与 &
在二进制的基础上,对每一位进行逻辑与运算 比如:
$no1=15; //二进制就是1111
$no2=8; //二进制就是1000
$result =$no1 & no2
//二进制的1000也就是8 从个位到千位一个一个进行与运算
Ø 按位或 |
在二进制的基础上对每一位进行逻辑或运算
Ø 按位异或 ^
在二进制的基础上对每一位进行逻辑异或运算
Ø 按位非 ~
在二进制的基础上对每一位进行逻辑非运算。
注意:如果是二进制第一位符号位为1 则该数为负数。是负数,载二进 制中必须反码,在补码+1
PS:有一定的规律 。
$no1=19;
$no2=~$no1;
//$no2=-20
Ø 左移 <<
在二进制的基础上将所有二进制的数值想左移动1位,移动之后的空白位置补0,效果类似乘以2
$a=128;
$b=$a>>2;
//$b=128*2^2(移动几位^几)每一次移动都表示"乘以2"
Ø 右移 >>
在二进制的基础上将所有二进制的数值想右移动1位,移动之后移出的最后一位会被删除 效果类似除以2
其他运算符
Ø 错误抑制符 @
用于屏蔽单行错误,对于多行无效,尽量少用@符号,效率太低。
Ø 三元运算符 ? (类似于if)
格式:
条件?真值:假值
u 根据条件的真假决定取真值还是假值
u 如果格式条件结果为true,那么就将真值赋值给变量
u 如果格式条件结果为false,那么就将假值赋给变量
-> 对象成员访问
=> 数组元素访问符号
, 声明多变量的分隔符 for循环的第一个参数使用
``(反引号)用于执行系统命令
运算符的优先级
解决运算符优先级的最好办法,推荐使用()
在手册中可查看优先级。