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.

 

更多文章请关注《万象专栏》