PHP基本语法与流程控制

1.PHP概述


PHP语法借鉴吸收了C语言、java和Perl等流行计算机语言的特点。PHP主要目标是允许网络开发人员快速编写动态页面,简单说PHP主要用于开发各种类型的网站程序。PHP是脚本语言不需要事先编译,在服务器端运行。PHP可以运行在windows、Linux等各种操作系统上。

2.PHP基本语法(一):初识PHP脚本程序


PHP语言标记:开始标记:< ?php      结束标记:?>       输出:echo

PHP代码可以嵌入到html代码中任何位置,并且可以嵌入任意多个,代码末尾的?>结束标记可以省略。一些PHP语句的结尾要加上;表示一句话的结束,结束标记?>就隐含了一个;所以在?>之前紧挨着的PHP语句可以省略;。

注释:/*   */多行注释        //单行注释

空格、制表符、换行这些在PHP中不会显示,可适当利用增加代码可读性。

3.PHP基本语法(二):变量、变量类型和常量


1)变量:是用于临时储存值的容器,PHP在使用变量前不需要事先声明变量,一旦设置了某个变量,就可以在脚本中重复去使用它。

格式:$变量名=值 unset(变量名称)函数 释放(删除)指定的变量

变量的命名规则:变量名严格区分大小写,变量名只能包含字母、数字、下划线并且必须以字母或下划线开头,最好不要用关键字(如:if、and等)作为变量名称。

变量的引用赋值:例:

1
2
$;a=10;$b=$a;echo $b;//此时输出:10
$;a=10;$b=&$a;$b=20echo $a;//此时输出:20

2)变量类型:是指保存在该变量中的数据类型,具有相同类型的数据才能被彼此相互操作,也不需要事先声明,变量或常量的数据类型由程序的上下文决定

使用var_dump(变量名)可以输出变量的类型。

(1)bool(布尔型):最简单的类型,变量里存ture和false,如:$a=true;

(2)int(整型):变量里存整数,如:$a=1;

(3)float(浮点型,也称double):变量里存小数,如:$a=1.1;

(4)string(字符型):如:$a=’测试’,字符串可以用单引号、双引号、定界符三种方法来定义

单引号:单引号中的字符串中不能再包含字符串,如果要用单引号需要用反斜杠(\)转义。PHP不会解析单引号中的变量,所以在定义简单字符串没有特别要求的时候,应使用单引号定义字符串!

双引号:PHP会解析双引号中的变量名,在双引号中使用变量时需使用{}括起来如:$a=”abc{$b}text….”,不括起来解析变量时会从$开始一直往后读,就会导致报错。

定界符:<<<之后跟一个标识符(自己命名,命名规则同变量命名规则)开始,然后是字符串内容,最后是同样的标识符表示结束,结束标识符后必须接;例:

1
2
3
$a=<<<abc
t{$b}est123...
abc;

定界符中写入变量时与双引号情况相同,定界符中字符串中可以使用单引号、双引号。

(5)array(数组)(6)object(对象)(7)resource(资源)这三种暂时先不写,之后再写。

(8)NULL(空):将变量直接赋值为null;声明的变量未被赋值;被unset()函数删除的变量,这三种情况就是空类型。

3)变量类型相互转换

自动类型转换:这种是程序运行中不太可控的部分所以在编写代码是不要涉及,不能给自己挖坑是吧。

强制类型转换:在要转换的变量之前加上括号括起来目标类型如:$b=(int)\$a;这种也用的少尽量不用

4)常量

定义:define(’常量名’,值)或者define(”常量名”,值)

命名:规则和变量相同,也遵循PHP标识的名称规则,按照惯例常量标识符总是大写的,例:define(’TEST’,’测试’),自己定义的常量严格区分大小写。

特点:常量不能通过赋值语句定义,只能用define()函数定义; 常量一旦被定义就不能被重新定义或者取消定义;常量的值只能是bool、int、float、string类型。

预定义常量:其中有些以_开头的,这些预定义常量又叫魔术常量,预定义常量不区分大小写。

4.PHP基本语法(三):运算符


定义:运算符就是对一个或多个操作数(变量或数值)执行某种运算的符号,也称操作符。例:!true、$a + $b、true ? 1:0,其中!、+、?、:这些就是运算符,其他就叫操作数,根据操作数的个数分为一元运算符、二元运算符、三元运算符。

1)算术运算符

​ +:加法;-:取反或减法;*:乘法;/:除法;%:取模

​ ++:自增:++$a 先加一再赋值,$a++ 先赋值再加一;–:自减:和++相同,自增自减 是对变量而言的。

2)字符串运算符:只有一个(.)链接运算符,将两个字符串连接起来,例:$a.$b;

3)赋值运算符(=):=左边必须是变量,右边可以是一个表达式,也可以是值或一个变量,将右边的值赋给左边的变量。

其他形式:+=:例:$a+=$b,等同于($a=$a+$b), -=、/=、*=、%=     同理。

4)比较运算符:对操作数按照比较运算符的规则进行比较,比较出的结果如果满足规则结果就是true,否则就是false。

==:是否相等;===:全等(值相等类型也相等);!=:是否不相等;<>:同!=

!==:不全等;   <:小于;   >:大于;   <=:小于等于;   >=:大于等于

5)逻辑运算符:与比较运算符相似,满足结果输出true,否则输出false。

逻辑与(and 或 &&):左右两边表达式值都为true时输出true,否则输出false。

逻辑或(or 或  ||):左右两边表达式值一个为true,就输出true。

逻辑亦或(xor):左右不一样输出true,一样输出false。

逻辑非(!):否定当前值。

6)位运算符:主要用于网站开发,在PHP中用的很少,这里就不写了。

7)其他运算符

? :: 格式:表达式1?表达式2:表达式3;,如果表达式1的值为true就执行表达式2,表达式1的值为false就执行表达式3

‘  ’:可以把系统的命令放在里面执行,例:$a=’ipconfig’;,涉及跨平台。

@:屏蔽表达式可能发生的错误,例:echo @$a;

=>、->、instanceof 面向数组和对象使用,之后再写。

8)运算符的优先级:详情点这里

优先级归纳:[结合方向(从哪个方向算)]运算符,由高到低(有括号先算括号内的,括号内看成一个整体):

[无]递增++递减–、[右]逻辑非!、[左]乘* 除/ 取余%、[左]加 减 字符串连接符、[无]包含大于号或者小于号的比较运算符、[无]不包含大于号或者小于号的比较运算符、[左]逻辑与&&、[左]逻辑或||、[左]?:、[右]赋值运算符、[左]逻辑亦或xor

5.流程控制(一):if语句


例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$a=91;
$grade1=60;
$grade2=75;
$grade3=85;
if($a<$grade1){
echo'不及格';
}
elseif($a<$grade2){
echo'及格';
}
elseif($a<$grade3){
echo'良好';
}
else{
echo'优秀';
}
?>//最终输出优秀

if、elseif、else等可相互嵌套,可以根据实际情况改变灵活运用,比较简单敲几遍就会了,与C语言语法一样。

6.流程控制(二):switch语句


例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$a=3;
switch($a){//括号内是表达式
case 1://case相当于==,与括号内表达式的值比较
echo'今天星期一';
break;//跳出的意思,结束此次switch
case 2:
echo'今天星期二';
break;
case 2:
echo'今天星期二';
break;
case 3:
echo'今天星期三';
break;
case 4:
echo'今天星期四';
break;
case 5:
echo'今天星期五';
break;
case 6:
echo'今天星期六';
break;
case 7:
echo'今天星期日';
break;
default:
echo'无法匹配';
}
?>//最终输出今天星期三

注:表达式的值最好是整型或者字符串;不能漏掉break;如果某个case语句后面没有接任何语句块,那么就说明这个语句块内容同下;case后面的语句块不需要用{}括起来。

7.流程控制(三):循环语句


1)while循环:while(表达式){各种语句……},当表达式值为true执行大括号内语句块,语句块执行结束后返回上面继续判断表达式值是true还是false,按此循环,当值为false时while语句结束,例:

1
2
3
4
5
6
7
<?php
$a=1;
while($a<5){
$a++;
echo $a.'<br />';
}
?>//最终输出2、3、4、5

2)do…while循环:do{各种语句}while(表达式);,与while语句不同的是do…while语句至少要执行一次,例:

1
2
3
4
5
6
7
<?php
$a=1;
do{
$a++;
echo $a.'<br />';
}while($a<5);
?>//最终输出2、3、4、5

3)for循环 :for(表达式1;表达式2;表达式3){各种语句},表达式1放初始化语句如:$a=0,表达式2放判断语句,表达式3放对初始化自增或自减的语句,三个表达式位置可以放多个表达式中间用逗号隔开。例:

1
2
3
4
5
<?php
for($i=1;$i<5;$i++){
echo $i.'<br />';
}
?>//最终输出1、2、3、4

8.流程控制(四):特殊的流程控制语句


1)break语句:用于switch、for、while、do…while、foreach等语句,用于中断当前语句,例:

1
2
3
4
5
6
7
8
<?php
for($i=1;$i<5;$i++){
if($i==3){
break;//中断本次循环
}
echo $i.'<br />';
}
?>//最终输出1、2

2)continue语句:只用于循环语句,跳出本次循环,例:

1
2
3
4
5
6
7
8
<?php
for($i=1;$i<5;$i++){
if($i==3){
continue;//跳出本次循环
}
echo $i.'<br />';
}
?>//最终输出1、2、4

3)exit()语句:结束整个程序的执行,括号内可以写字符串用作提示。例:

1
2
3
4
5
6
7
8
<?php
echo'星期一<br />';
exit('程序结束!');
echo'星期二<br />';
echo'星期三<br />';
echo'星期四<br />';
echo'星期五<br />';
?>//最终输出星期一、程序结束!