1.变量类型
整型【interge】,浮点型【double】(在PHP中,float和double都是指浮点型),字符串【string】,布尔【boolean】(值是true和false),数组【array】,对象【object】,NULL【没有值也没有类型】,资源【resource】
2.变量检测
isset() 检测变量是否设置 例如 isset($b)
1 if(isset($b)){ 2 echo '变量b存在'; 3 }else{ 4 echo '变量b不存在'; 5 }
注:若使用isset()测试一个被设置为NULL的变量,将返回FALSE,也即会返回你所测试的变量不存在。同时,还要注意一个NULL字节(“\0”)并不等同于PHP的NULL常数。还有,若是你所测试的变量c是这样的 $c=''; 或 $c=0; 那么,变量c是存在的。
3.变量类型检测
gettype() 获取变量类型
echo gettype($a);
判断是否是某一类型:
- is_array() 检测是否是数组
- is_bool() 检测是否是布尔型
- is_int() 检测是否是整型
- is_interge() 检测是否是整型
- is_long() 检测是否是整型
- is_float() 检测是否是浮点型
- is_object() 检测是否是对象
- is_string() 检测是否为字符串
1 if(is_int($a)){ 2 echo 'a是整型'; 3 }else{ 4 echo 'a不是整型'; 5 }
注:若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。
4.打印调试变量
- echo() 【适合打印字符串和数字】
- print_r() 【适合打印数组】
- var_dump() 【都适合,因为它是打印变量的类型及其值】
5.变量类型转换
PHP中,变量的类型是可以随时转变的,非常灵活
最常见的是字符串与数字的转换,或是数字/字符串向布尔值的转换
1>字符串到数字的转换,从左到右截取,直至遇上不合法的部分,结出来的部分转成数字
1 echo '<br />'; 2 $a = '12.5hello99'; 3 $a = $a + 3; 4 var_dump($a);
运行结果为: float(15.5)
2>数字到字符串的转换
1 $a = 123; 2 $a = $a . 'hello'; 3 echo $a;
运行结果:123hello
3>到布尔型的判断,以下之都被当作布尔值的假,而其他值,都被当做布尔值的真
'','0',0,0.0,NULL,FALSE,array(),var$var
6.传值赋值与引用赋值
1>传值赋值
1 $li = 29; 2 $wang = 23; 3 $wang = $li; 4 5 var_dump($li,$wang);
结果都是29,并且在此之后无论谁单独改变赋值都不会影响到另一个。
2>引用赋值
1 $li = 29; 2 $wang = 23; 3 4 $wang = &$li;
结果都是29,但是此时$wang指向了$li的地址,也就是说,他们此时的地址都是$li的地址,在此之后对他们中任意一个改变赋值也会影响到另一个。
7.销毁变量
unset()
若$li和$wang共同指向一个地址,此时销毁他们中的其中一个,另一个不会受到影响。
8.动态变量名
用变量的值作变量的名,如:$$a;
1 $liubei = '河北'; 2 $laoda = 'liubei'; 3 $paihang = 'laoda'; 4 echo $laoda , $$laoda ,$$$paihang;
结果是 liubei 河北 河北
9.算术运算符
注意事项:
1>运算中的除数不能为0,当有 $a / $b 时,$b不能为零。
2>在PHP中,int型的数是有上限的,当你指定的数字过于大时,系统会自动将其转换为float浮点型。
比如:
1 $a = 3200000000; 2 $b = 3200000000; 3 $c = $a + $b; 4 var_dump($c);
结果是: float(6400000000)
4>取模运算中,结果的正负仅取决于被除数的正负,与除数无关。
1 $a = -10; 2 $b = -3; 3 echo $a % $b;//取模算法时,结果的正负仅取决于被除数也即$a
结果为 -1
10.比较运算符
比较运算的结果时布尔型值
1 $a = 5; 2 $b = 3; 3 $c = ($a > $b); 4 var_dump($c);
结果是 bool(true)
- 等于 == 只要求比较双方值相等结果就为true
- 全等于 === 要求比较双方类型和值都相等结果才为true
11.三元运算符
($a>=$b?$a:$b); 含义就是判断$a和$b的大小,若$a>=$b为真,则输出$a,为假则输出$b。
12.逻辑运算符
与 ($a == true)&&($b == true) 只有$a和$b都是true时 该运算结果才为true。
或 ($a || $b) 只要$a,$b其中一个为true结果就是true。
13.递增递减运算符
1>递增运算
1 $b = 5; 2 $a = $b++;//先把$b的值赋给$a再对$b进行++ 3 var_dump($a,$b);
结果是 int(5) int(6)
1 $b = 5; 2 $a = ++$b;//先对$b进行++再把值赋给$a 3 var_dump($a,$b);
结果是 int(6) int(6)
2>递减运算
方式与递增同理
14.字符串运算符
$a . $b 将$a,$b拼接在一起 (若运算对象是整型数字,也会把它当作字符串来拼接)
1 $a = 'hello'; 2 $b = 'world'; 3 $c = $a . $b; 4 var_dump($c);
结果是 string(10)"helloworld"
注:若仅仅是将字符串对象打印出来,那么echo $a , $b; 语句的运行速度要比 echo $a . $b; 语句的运算速度更快。
15.赋值运算符
$a = 3;// 这是一个赋值运算,有两个作用,一是把3赋给$a,二是返回运算结果,即3
16.switch case 控制结构
1 $today = 1; 2 if($today == 1){ 3 echo '今天星期一'; 4 } else if($today == 2){ 5 echo '今天星期二'; 6 } else if($today == 3){ 7 echo '今天星期三'; 8 } else if($today == 4){ 9 echo '今天星期四'; 10 } else if($today == 5){ 11 echo '今天星期五'; 12 } else if($today == 6){ 13 echo '今天星期六'; 14 } else if($today == 7){ 15 echo '今天星期日'; 16 } else { 17 echo '不存在这种星期!'; 18 }
显然输出结果是 今天星期一
我们可以用以下switch case语句来替换上述语句
1 $today = 1; 2 switch ($today){ 3 case 1: 4 echo '今天星期一'; 5 break; 6 7 case 2: 8 echo '今天星期二'; 9 break; 10 11 case 3: 12 echo '今天星期三'; 13 break; 14 15 case 4: 16 echo '今天星期四'; 17 break; 18 19 case 5: 20 echo '今天星期五'; 21 break; 22 23 case 6: 24 echo '今天星期六'; 25 break; 26 27 case 7: 28 echo '今天星期日'; 29 break; 30 31 default: 32 echo'不存在这种星期!';
注:switch case 适合用在验证多个可能值时使用,不适合用在判断范围上。
17.while循环和do-while循环
1>while循环
1 $i = 100; //初始化某一值 2 while($i<=10){ //先进行条件判断 3 echo $i++,'<br/>'; //若条件满足则执行该语句('<br/>'这是换行的意思) 4 }
2>do-while循环
1 $i = 100; //初始化某一值 2 do{ 3 echo '我照样执行'; //先执行一遍语句 4 }while($i<10); //再进行条件判断,若条件满足则再次执行语句
18.for循环
循环的一般要素:初始化,判断,执行体,修改变量
for(初始化;判断;修改变量){
执行体
}
19.break与continue
1>break
1 for($i=0; $i < 10; $i++){ 2 if($i == 7){ 3 echo $i,'找到了<br />'; 4 break; 5 } else { 6 echo $i, '<br />'; 7 } 8 }
输出结果从0到7没有8,9。
2>continue
1 for($i=0; $i <10 ; $i++){ 2 if($i == 4){ 3 continue; 4 } 5 echo $i, '<br />'; 6 }
输出结果从0到9但是没有4。
20.
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv11426