数据类型:
1:整型:
可识别十六,八,十进制;
2:浮点型
两种表示形式:指数形式或者小数形式;
存储则全用指数形式;
3:bool:
除过false,0,null,undefined,nan,”“,”,以外均为true;
4:null:
空值,和0不同,和undefined不同;在php中代表基本数据类型;
5:undefined:
未定义类型;
6:字符串:
在php中""
和''
代表的都是字符串;
但是""
会主动解析$
符号,而''
是不会主动解析$
符号的;
数据类型转换
1:(目标数据类型)$var
:
不会对数据本身进行数据类型转换,只是在赋值时对赋值对象进行数据转换;
2:settype($name):
设置变量数据类型,会对数据本身进行数据类型转换;
3:表达式类型提升:
在表达式中最终的结果类型是表达式中类型最高的数据类型;
数据类型的获取
1:gettype($var)
:获取变量本身的数据类型;返回的是数据类型的名称;
2:is_xxx($var)
:确定变量是否是指定的数据类型,返回布尔值;
php中的运算
1:算术运算
项目:+ - * / %:
++/- -是自增自减运算;而且要特别注意自增自减符号放在变量之前和之后本质是不一样的;放在前面是先进行自增或者自减运算,再进行其他运算,放在后面则是先进行其他运算后进行自增自减;并且自增自减运算必须是针对变量进行的;
可参与算术运算的项目有:数字,字符串,null;
echo 1+"b"; //输出1
echo null+1;//输出1
$a = 'a';
echo $a++;//输出a
echo +$+a;//输出b;
2:比较运算:
项目有:< > <= >= == === != !===
注意几个问题:
1:=== 和 ==的区别:===要求比较双方必须在参数类型和参数值上保持一致;而==则只需比较双方在值上相等即可:看个比较经典的例子:
$var1 = '123acd';
$var2 = 123;
echo $var1 == $var2;//输出1
var_dump($var1 === $var2);//输出false
2:相同的两个浮点数在比较是否相等的时候有可能会返回false:
3:比较双方如果一方是布尔值,则会将另一方也转为布尔值比较;
4:如果是数字和数字字符串比较是按照数字比较;
5:如果字符串和字符串比较则会按位比较;
3:逻辑运算
项目:&& || ! and or
运算结果是布尔值;
在php中有逻辑短路现象:
如果前一项是假,那么后一项将不会再判断,这就是逻辑短路现象;因此将容易判断的项放置在前面程序运行速度会更快;
4:按位运算
项目:<< 左移运算 >>右移运算
运算方式:左移一位相当于乘以2;右移一位相当于除以2;
计算结果是具体的值,而非布尔值;
5赋值运算
项目:+= -= *= /= ++= –= %=
运算方式:会先进行算数运算,在进行赋值运算;
6一些特殊运算
项目
. 点在php中用来连接字符串;
a =a>0:c ?b //: ? 三目运算符;:号前面的运算表达式如果是真,则给a赋予c,否则赋予b;
流程控制
条件:
if:
if(){}
if(){}else{}
if(){}else if(){}else{}
switch:
switch($var){
case 1:
//代码
break;
case 2:
//代码
break;
default:
//代码
}特别注意:在switch中$var只能是字符串,整型数据,引用型数据,不能是浮点数;
循环:
for循环:
1:
for(i=0;i<10;i++){
//循环体
}
2:
for(;;)将会是死循环
3:foreach
第一种:
foreach($array as $key=>$value){
//这种会遍历出键和值
}
第二种:
foreach($array as $value){
//这种只会遍历出值
}
4:while:
$i =0;
while($i< $max){
//执行代码
$i++;
}
5:do while:
$i = 0;
do{
//执行代码
$i++;
}while($i< $max)
循环中断:
break;//终止当前循环;
break 2;//终止第2层循环;
continue;//终止当前循环,并开始下一次循环;
continue 2;终止第二层循环,并开始下一次循环;