一、初识PHP
1.PHP开始标记
1 |
2.PHP结束标记1
3.页面最终是通过HTML,CSS,JS来进行展示的
**4.PHP代码可以嵌入html代码中,可以嵌入到任意位置,并且可以嵌入多个php代码,必须在php文件中嵌入才生效。**
如果建立的是html文件,中间嵌有php代码,apache默认是不会将文件传送到PHP应用服务器,因为建立的是HTML文件,会直接返回给请求方。
5.文件末尾的?>结束标签可以省略
6.指令分隔符** ;
1.在一些PHP语句的结尾要加上 ;表示一句话的结束。
2.结束标记?>隐含了一个 ;
所以在?>之前的PHP语句可以省略掉 ;
7.注释
多行注释
/
多行注释
/
单行注释
//单行注释
8.空白的处理**
空格,tab制表符,换行 这些写在PHP代码里是没有影响的
可以利用这些来增加代码的可读性。
二、变量
变量是用于临时存储值的容器
1.变量的声明
在其他语言中,在使用变量前,事先声明一下!
注意:在PHP程序中,使用变量之前是不需要声明的!(可以直接使用)
变量用于存储 数字、文本字符串 或者数组的!
$变量名=数据(值)
2.变量的销毁
unset($变量名称)
3.变量的命令规则
1.变量名称严格区分大小写
$name,$NAME,$Name
都是不同的变量
2.字母或者下划线开头
总结:变量名只能包含 字母 数字 下划线并且以字母或者下划线开头!
注意:最好不要用关键字作为变量名称
4.可变变量
例如:
1 |
|
输出结果为:1
c
5.变量的引用赋值
引用赋值相当于给变量加了一个别名
1 |
|
输出结果:1
20
三、变量类型
PHP是一种弱语言
概述:变量类型是指保存在该变量中的数据类型
1.变量类型简介
bool(布尔型)
在变量里存true 或 false 那么这个变量就是布尔类型
以下值被认为是false,其他值都是被认为是true
布尔值 false
0
浮点型0.0
空白字符串和字符串0//指的是直接一对单引号或者双引号,里面没有如何内容
例如:
1 | var_dump((bool)"")或var_dump((bool)'') |
没有成员的数组1
var_dump((bool)array());
NULL
例如:1
var_dump((bool)NULL);
输出结果 都为:
bool(false)
int(整形)
在变量里面存整数,那么这个变量就是整形变量.
float(浮点型,也称double)
在变量里面存小数,那么这个变量就是浮点型数据.
string(字符串)
需要加单引号或者双引号
例如:1
2
3
4
$a='t';
var_dump($a);
var_dump($变量名)//将变量值和类型一起输出
单引号
PHP不会解析单引号之间的变量
双引号
其中的变量名会被变量值代替,即PHP会解析双引号之间的变量
例如:1
2
3
4
5
6
$b=100;
$a="te{$b}st";
var_dump($a);
echo $a;
输入结果:1
2string te100st
te100xt
定界符
<<<名字
名字;
定界符可以包含单引号、双引号、也可以解析变量
例如:1
2
3
4
5
6
7
$b=200;
$a=<<<abc;
wwwww{$b}w
abc;
var_dump($a)
输出结果:1
string wwwww200w
array(数组)
objec(对象)
resource(资源)
NULL
例如:1
2
3
4
$a=null;
var_dump($a);
输出结果:1
null
二、变量类型相互转化
变量类型强制转化
例如:
1 |
|
输出结果:1
int 0
四、常量
常量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器
定义和使用
define(‘常量名称’,常量值)或者define(“常量名称”,常量值)
例如:1
2
3
4
define('WWW',10)
echo WWW
输出结果:
10
常量的命名:
1.和变量一样 只能包含字母、数字、下划线 并且必须以字母或下划线开头。
2.按照惯例常量的名称总是大写的。
3.自定义常量总是严格区分大小写的!
常量和变量的区别
1.常量前面没有没有符号$
2.常量只能用define()函数来定义,不能通过赋值语句来定义
3.常量可以不用理会变量范围的规则而在任何地方定义和使用
4.常量一旦被定义就不能重新定义或者取消定义
5.常量的值只能是bool,int,float,string类型
预定义常量
预定义常量是PHP已经定好了的常量
有的预定义常量是以_开头,这些预定义常量叫做魔术常量
代码所在的位置不同 值也是不同的。
1 | 例如: |
五、运算符
概述:
运算符是对一个或者多个操作数(变量或者数值)执行某种运算的符号,也称操作符!
算术运算符
1 .+
例如:
1 |
|
输出结果:
3
-
第一个意思:减号第二个意思:取反
1
2
3
4
$a=1;
-$a;
输出结果:
-1
取反并不会影响到被取反变量本身的值!
*
例如:1
2
3
4
5
6
&a=1;
&b=2;
$c=$a*$b;
echo $c;
输出结果:
2
/
例如:1
2
3
4
5
$a=10;
$b=2;
echo $a/$b;
输出结果:
5
5.%
取模(取余)
例如:1
2
3
4
5
$a=10;
$b=3;
echo $a%$b;
输出结果:
1
6.++
自增
例如:1
2
3
4
5
$a=1;
++$a;
echo $a;
输出结果:
2
如果 ++在变量之后
例如:1
2
3
4
$a=1;
echo $a++;
输出结果:
1
7.--
自减
例如:1
2
3
4
5
$a=10;
$a--;
echo $a;
输出结果:
9
1 |
|
输出结果:
10
注意:自增自减是对变量来说的!
字符串运算符
1 .
连接运算符
例如:
1 |
|
输出结果:
iamhacker
2 =
赋值运算符
注意:赋值运算符整个语句是有值的,所以整个语句就是一个表达式,所以我们也可以怎么写:
$a=$b=2;相当于$a=($b=2)
把右边的值赋给左边的变量
二元运算符
+=
运算符
例如:1
2
3
4
5
6
$a=1;
$b=2;
$a+=$b;
echo $a;
输出结果:
3
-=
运算符1
2
3
4
5
6
$a=2;
$b=1;
$a-=$b;
echo $a;
输出结果:
1
除此之外,赋值运算符还有
*=
/=
%=
.=
比较运算符
PHP中规定:
使用echo输出布尔类型值的时候
echo true;它在页面中会输出1
echo false;它会在页面中什么都不输出
需要输出布尔类型值的时候最好使用var_dump()这个函数来输出
对操作数(按照比较运算符的要求,规则)进行比较
如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立),否则就是false(假,不成立)
1.==
比较左右两边数的值是否相等
例如:1
2
3
4
5
$a=1;
$b=1;
var_dump($a==$b);
输出结果:1
bool(true)
2.===
全等(值要相等,类型也要相等)
例如:1
2
3
4
5
$a=11;
$b='11';
var_dump($a===$b);
输出结果:
bool(false)
3.!=
比较值是否不相等
例如:1
2
3
4
5
$a=1;
$b=11;
var_dump($a!=$b);
输出结果:
bool(true)
4.<>
比较值是否不相等
5.!==
不全等
如果两边的操作数不全等那么就是true, 否则就是false
php会自动转化类型
例如:
1 |
|
输出结果:1
bool(false)
1 |
|
输出结果:1
bool(true)
因为类型不一样
6.<
小于
比较两边的操作数
例如:1
2
3
4
5
$a=1;
$b=1;
var_dump($a<$b);
输出结果:1
bool(false)
7.> 大于
8. <= 小于等于
9. >= 大于等于
逻辑运算符
概念: 对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false)
要求:
参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被PHP自动转化成布尔类型的值,然后参与运算。
1.逻辑与
and 或者 &&
左右两边的表达式的值都为true时,运算结果为true。只要其中有一个false,结果就是false。
例如:1
2
3
4
5
$a=true;
$b=true;
var_dump( $a && $b);
输出结果:1
bool(true)
短路问题:
语言规定:
只要有逻辑运算符(逻辑与、逻辑或)那么运算结果就是一个true或false
例如:1
2
3
4
5
6
$a=false;
$b=1;
$a && ++$b;
echo $b;
输出结果:
1
2.逻辑或
or 或者 ||
左右两边的表达式的值有一个为true,运算的结果就是true
,只有当两边的值都是false的时候,结果才会是false。
例如:1
2
3
4
5
$a=true;
$b=false;
var_dump($a || $b)
输出结果:1
bool(true)
短路问题:1
2
3
4
5
6
$a=true;
$b=1;
&a || $ ++b;
echo $b;
输出结果:
1
3.逻辑异或
xor
运算规则:左右两边表达式的值不一样的时候结果就是true,如果一样那么结果就是false
例如:1
2
3
4
5
$a=false;
$b=true;
var_dump($a xor $b);
输出结果:1
bool(true)
4.逻辑非
!
运算规则:将原来的表达式的值否定掉,原来是true,那么结果就是false
例如:1
2
3
4
$a=false;
var_dump(!$a);
输出结果:
1 | bool(true) |
5.其他运算符
1.?:
三元运算符
格式: 表达式1?表达式2:表达式3:
如果表达式1的值为true,那么就执行表达式2,否则就执行表达式3
例如:1
2
3
4
$a=true ? 10 : 20;
echo $a;
输出结果:1
10
2.@
屏蔽表达式可能发送错误;在表达式前面加上@
6.运算符的优先级
优先级的概念:
谁的优先级别高,就先执行谁
结合方向
规定了从那个方向开始算的问题
优先级归纳:
1)[结合方向:无]递增递减
2)[右]逻辑非!
3)[左]乘,除,取余
4)[左]加,减,字符串连接符
5)[无]包含大于号或者小于号的比较运算符
6)[无]不包含大于号或者小于号的比较运算符
7)[左]逻辑与&&
8)[左]逻辑或||
9)[左]? :
10)[右]赋值运算符
12)[左 ]逻辑异或xor
园括号的作用:
用圆括号可以将表达式里面的某一块看成一个整体
例如:1
2
3
4
$a=(1+5)*3
echo $a;
输出结果:1
18
另外使用括号可以增强代码的可读性
流程控制【1】-if语句:
1.顺序执行
自上而下执行即可
对执行过程没有控制
2.分支执行
分支执行可以根据条件是否满足来选择某些代码,PHP的分支执行主要是通过两种语句(if\switch)来实现
1.if语句
:
1)单向条件
if(表达式) 语句;
表达式的值为true,那么就执行语句1,否则就不执行!
例如:1
2
3
4
5
6
$a=400;
$b=40;
if($a>$b) echo "1";
echo "2";
输出结果:1
12
流程控制【2】-switch语句:
1 | switch(表达式){ |
循环语句:1.while语句1
2
3while(表达式){
各种语句....
}
2.do…while语句
1 | do{ |
3.for语句
1 | for(表达式a;表达式b;表达式c){ |
特殊的流程控制语句
1.break语句
2.continue语句
3.exit()语句 作用:结束当前整个程序的执行!