一、初识PHP脚本

1.PHP开始标记

<?php 

2.PHP结束标记

 ?>

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.可变变量

例如:

<?php 
$a='b'//定义一个变量a储存值b
$$a='c'//$b='c'
echo $b;
?>

输出结果为:

c

5.变量的引用赋值

引用赋值相当于给变量加了一个别名

<?php
$b=&$a;//相当于给$a起了一个别名
$b=20;
echo $a;
?>

输出结果:

20

三、变量类型

PHP是一种弱语言
概述:变量类型是指保存在该变量中的数据类型

1.变量类型简介

bool(布尔型)

在变量里存true 或 false 那么这个变量就是布尔类型

以下值被认为是false,其他值都是被认为是true

布尔值 false

0

浮点型0.0

空白字符串和字符串0//指的是直接一对单引号或者双引号,里面没有如何内容

例如:

var_dump((bool)"")或var_dump((bool)'')

没有成员的数组

var_dump((bool)array());

NULL

例如:

var_dump((bool)NULL);

输出结果 都为:

bool(false)

int(整形)

在变量里面存整数,那么这个变量就是整形变量.

float(浮点型,也称double)

在变量里面存小数,那么这个变量就是浮点型数据.

string(字符串)

需要加单引号或者双引号

例如:

<?php 
$a='t';
var_dump($a);
?>

var_dump($变量名)//将变量值和类型一起输出

单引号

PHP不会解析单引号之间的变量

双引号

其中的变量名会被变量值代替,即PHP会解析双引号之间的变量

例如:

<?php
$b=100;
$a="te{$b}st";
var_dump($a);
echo $a;
?>

输入结果:

string te100st
te100xt

定界符

<<<名字

名字;

定界符可以包含单引号、双引号、也可以解析变量

例如:

<?php
$b=200;
$a=<<<abc;
wwwww{$b}w
abc;
var_dump($a)
?>

输出结果:

string wwwww200w

array(数组)

objec(对象)

resource(资源)

NULL

例如:

<?php
$a=null;
var_dump($a);
?>

输出结果:

null

二、变量类型相互转化

变量类型强制转化

例如:

<?php
$a='www';
$b=(int)$a;
var_dump($b);
?>

输出结果:

int 0

四、常量

常量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器

定义和使用

define(‘常量名称’,常量值)或者define(“常量名称”,常量值)

例如:

<?php
define('WWW',10)
echo WWW
?>

输出结果:

10

常量的命名:

1.和变量一样 只能包含字母、数字、下划线 并且必须以字母或下划线开头。
2.按照惯例常量的名称总是大写的。
3.自定义常量总是严格区分大小写的!

常量和变量的区别

1.常量前面没有没有符号$
2.常量只能用define()函数来定义,不能通过赋值语句来定义
3.常量可以不用理会变量范围的规则而在任何地方定义和使用
4.常量一旦被定义就不能重新定义或者取消定义
5.常量的值只能是bool,int,float,string类型

预定义常量

预定义常量是PHP已经定好了的常量
有的预定义常量是以_开头,这些预定义常量叫做魔术常量
代码所在的位置不同 值也是不同的。

    例如:
_LINE_
_FILE_//这些都是魔术常量
预定义常量是不区分大小写的

五、运算符

概述:
运算符是对一个或者多个操作数(变量或者数值)执行某种运算的符号,也称操作符!

算术运算符

1 .​​+​

例如:

<?php
$a=1;
$b=2;
echo $a+$b;
?>

输出结果:

3

2. ​​-​

第一个意思:减号

第二个意思:取反

<?php
$a=1;
-$a;
?>

输出结果:

-1

取反并不会影响到被取反变量本身的值!

3. ​​*​

例如:

<?php
&a=1;
&b=2;
$c=$a*$b;
echo $c;
?>

输出结果:

2

4. ​​/​

例如:

<?php
$a=10;
$b=2;
echo $a/$b;
?>

输出结果:

5

5.​​%​

取模(取余)

例如:

<?php
$a=10;
$b=3;
echo $a%$b;
?>

输出结果:

1

6.​​++​

自增

例如:

<?php
$a=1;
++$a;
echo $a;
?>

输出结果:

2

如果 ++在变量之后

例如:

<?php
$a=1;
echo $a++;
?>

输出结果:

1

7.​​--​​ 自减

例如:

<?php
$a=10;
$a--;
echo $a;
?>

输出结果:

9

<?php
$a=10;
echo $a--;
?>

输出结果:

10

注意:自增自减是对变量来说的!

字符串运算符

1 ​​.​​ 连接运算符

例如:

<?php
$a='i';
$b='is';
$c='hacker';
echo $a.$b.$c;
?>

输出结果:

iamhacker

2 ​​=​​ 赋值运算符

注意:赋值运算符整个语句是有值的,所以整个语句就是一个表达式,所以我们也可以怎么写:

$a=$b=2;相当于$a=($b=2)

把右边的值赋给左边的变量

二元运算符

​+=​​运算符

例如:

<?php
$a=1;
$b=2;
$a+=$b;
echo $a;
?>

输出结果:

3

​-=​​运算符

<?php
$a=2;
$b=1;
$a-=$b;
echo $a;
?>

输出结果:

1

除此之外,赋值运算符还有

*=
/=
%=
.=

比较运算符

PHP中规定:
使用echo输出布尔类型值的时候
echo true;它在页面中会输出1
echo false;它会在页面中什么都不输出
需要输出布尔类型值的时候最好使用var_dump()这个函数来输出
对操作数(按照比较运算符的要求,规则)进行比较
如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立),否则就是false(假,不成立)

1.​​==​

比较左右两边数的值是否相等

例如:

<?php
$a=1;
$b=1;
var_dump($a==$b);
?>

输出结果:

bool(true)

2.​​===​

全等(值要相等,类型也要相等)

例如:

<?php
$a=11;
$b='11';
var_dump($a===$b);
?>

输出结果:

bool(false) 

3.​​!=​

比较值是否不相等

例如:

<?php
$a=1;
$b=11;
var_dump($a!=$b);
?>

输出结果:

bool(true)

4.​​<>​​ 比较值是否不相等

5.​​!==​​不全等

如果两边的操作数不全等那么就是true, 否则就是false

php会自动转化类型

例如:

<?php
$a=11;
$b='11';
var_dump($a!=$b);
?>

输出结果:

bool(false) 

<?php
$a=11;
$b='11';
var_dump($a!==$b);
?>

输出结果:

bool(true) 

因为类型不一样

6.​​<​​ 小于

比较两边的操作数

例如:

<?php
$a=1;
$b=1;
var_dump($a<$b);
?>

输出结果:

bool(false) 

7.>  大于
8. <= 小于等于
9. >= 大于等于

逻辑运算符

概念: 对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false)
要求:
参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被PHP自动转化成布尔类型的值,然后参与运算。

1.逻辑与

and 或者 &&

左右两边的表达式的值都为true时,运算结果为true。只要其中有一个false,结果就是false。

例如:

<?php
$a=true;
$b=true;
var_dump( $a && $b);
?>

输出结果:

bool(true)

短路问题:

语言规定:

只要有逻辑运算符(逻辑与、逻辑或)那么运算结果就是一个true或false

例如:

<?php
$a=false;
$b=1;
$a && ++$b;
echo $b;
?>

输出结果:

1     

2.逻辑或

or 或者 ||

左右两边的表达式的值有一个为true,运算的结果就是true

,只有当两边的值都是false的时候,结果才会是false。

例如:

<?php
$a=true;
$b=false;
var_dump($a || $b)
?>

输出结果:

bool(true)

短路问题:

<?php
$a=true;
$b=1;
&a || $ ++b;
echo $b;
?>

输出结果:

1

3.逻辑异或

xor

运算规则:左右两边表达式的值不一样的时候结果就是true,如果一样那么结果就是false

例如:

<?php
$a=false;
$b=true;
var_dump($a xor $b);
?>

输出结果:

bool(true)

4.逻辑非


运算规则:将原来的表达式的值否定掉,原来是true,那么结果就是false

例如:

<?php
$a=false;
var_dump(!$a);
?>

输出结果:

bool(true) 

5.其他运算符

1.​​?:​

三元运算符

格式: 表达式1?表达式2:表达式3:

如果表达式1的值为true,那么就执行表达式2,否则就执行表达式3

例如:

<?php
$a=true ? 10 : 20;
echo $a;
?>

输出结果:

10

2.​​@​

屏蔽表达式可能发送错误;在表达式前面加上@

6.运算符的优先级

优先级的概念:

谁的优先级别高,就先执行谁

结合方向

规定了从那个方向开始算的问题

优先级归纳:

1)[结合方向:无]递增递减

2)[右]逻辑非!

3)[左]乘,除,取余

4)[左]加,减,字符串连接符

5)[无]包含大于号或者小于号的比较运算符

6)[无]不包含大于号或者小于号的比较运算符

7)[左]逻辑与&&

8)[左]逻辑或||

9)[左]? :

10)[右]赋值运算符

12)[左 ]逻辑异或xor

园括号的作用:

用圆括号可以将表达式里面的某一块看成一个整体

例如:

<?php
$a=(1+5)*3
echo $a;
?>

输出结果:

18

另外使用括号可以增强代码的可读性

流程控制【1】-if语句:

1.顺序执行

自上而下执行即可

对执行过程没有控制

2.分支执行

分支执行可以根据条件是否满足来选择某些代码,PHP的分支执行主要是通过两种语句(if\switch)来实现

1.​​if语句​​:

1)单向条件

if(表达式) 语句;

表达式的值为true,那么就执行语句1,否则就不执行!

例如:

<?php
$a=400;
$b=40;
if($a>$b) echo "1";
echo "2";
?>

输出结果:

12

流程控制【2】-switch语句:

switch(表达式){
case 1://case相当于==
语句块1;
break;
case 2:
语句块2;
break;
.......
default:
语句块n
}

循环语句:1.while语句

while(表达式){
各种语句....
}

​2.do​​…while语句

do{
各种语句
}while(表达式);

3.for语句

for(表达式a;表达式b;表达式c){
各种语句
}

特殊的流程控制语句

1.break语句

2.continue语句

3.exit()语句 作用:结束当前整个程序的执行!