Lemon's blog

PHP概念、基本语法、流程控制

Record my learning process of PHP.

字数统计: 3k阅读时长: 12 min
2019/04/18 Share

一、初识PHP

1.PHP开始标记

1
<?php

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
2
3
4
5
<?php 
$a='b'//定义一个变量a储存值b
$$a='c'//$b='c'
echo $b;
?>

输出结果为:

1
c

5.变量的引用赋值

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

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

输出结果:

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
<?php 
$a='t';
var_dump($a);
?>

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

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

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

1
2
3
4
5
6
<?php
$b=100;
$a="te{$b}st";
var_dump($a);
echo $a;
?>

输入结果:

1
2
string te100st
te100xt

定界符
<<<名字

名字;
定界符可以包含单引号、双引号、也可以解析变量
例如:

1
2
3
4
5
6
7
<?php
$b=200;
$a=<<<abc;
wwwww{$b}w
abc;
var_dump($a)
?>

输出结果:

1
string wwwww200w

array(数组)
objec(对象)
resource(资源)
NULL
例如:

1
2
3
4
<?php
$a=null;
var_dump($a);
?>

输出结果:

1
null

二、变量类型相互转化

变量类型强制转化
例如:

1
2
3
4
5
<?php
$a='www';
$b=(int)$a;
var_dump($b);
?>

输出结果:

1
int 0

四、常量

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

定义和使用
define(‘常量名称’,常量值)或者define(“常量名称”,常量值)
例如:

1
2
3
4
<?php
define('WWW',10)
echo WWW
?>

输出结果:
10

常量的命名:

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

常量和变量的区别

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

预定义常量

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

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

五、运算符

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

算术运算符

1 .+
例如:

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

输出结果:
3

  1. -
    第一个意思:减号
    第二个意思:取反
    
    1
    2
    3
    4
    <?php
    $a=1;
    -$a;
    ?>

输出结果:
-1
取反并不会影响到被取反变量本身的值!

  1. *
    例如:
    1
    2
    3
    4
    5
    6
    <?php
    &a=1;
    &b=2;
    $c=$a*$b;
    echo $c;
    ?>

输出结果:
2

  1. /
    例如:
    1
    2
    3
    4
    5
    <?php
    $a=10;
    $b=2;
    echo $a/$b;
    ?>

输出结果:
5

5.%
取模(取余)
例如:

1
2
3
4
5
<?php
$a=10;
$b=3;
echo $a%$b;
?>

输出结果:

1

6.++
自增
例如:

1
2
3
4
5
<?php
$a=1;
++$a;
echo $a;
?>

输出结果:

2

如果 ++在变量之后
例如:

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

输出结果:

1

7.-- 自减
例如:

1
2
3
4
5
<?php
$a=10;
$a--;
echo $a;
?>

输出结果:

9
1
2
3
4
<?php
$a=10;
echo $a--;
?>

输出结果:

10

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

字符串运算符

1 . 连接运算符
例如:

1
2
3
4
5
6
<?php
$a='i';
$b='is';
$c='hacker';
echo $a.$b.$c;
?>

输出结果:

iamhacker

2 = 赋值运算符

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

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

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

二元运算符

+=运算符

例如:

1
2
3
4
5
6
<?php
$a=1;
$b=2;
$a+=$b;
echo $a;
?>

输出结果:

3

-=运算符

1
2
3
4
5
6
<?php
$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
<?php
$a=1;
$b=1;
var_dump($a==$b);
?>

输出结果:

1
bool(true)

2.===
全等(值要相等,类型也要相等)
例如:

1
2
3
4
5
<?php
$a=11;
$b='11';
var_dump($a===$b);
?>

输出结果:

bool(false) 

3.!=
比较值是否不相等
例如:

1
2
3
4
5
<?php
$a=1;
$b=11;
var_dump($a!=$b);
?>

输出结果:

bool(true)

4.<> 比较值是否不相等
5.!==不全等
如果两边的操作数不全等那么就是true, 否则就是false

php会自动转化类型

例如:

1
2
3
4
5
<?php
$a=11;
$b='11';
var_dump($a!=$b);
?>

输出结果:

1
bool(false)

1
2
3
4
5
<?php
$a=11;
$b='11';
var_dump($a!==$b);
?>

输出结果:

1
bool(true)

因为类型不一样

6.< 小于
比较两边的操作数
例如:

1
2
3
4
5
<?php
$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
<?php
$a=true;
$b=true;
var_dump( $a && $b);
?>

输出结果:

1
bool(true)

短路问题:
语言规定:
只要有逻辑运算符(逻辑与、逻辑或)那么运算结果就是一个true或false
例如:

1
2
3
4
5
6
<?php
$a=false;
$b=1;
$a && ++$b;
echo $b;
?>

输出结果:

1            

2.逻辑或

or 或者 ||

左右两边的表达式的值有一个为true,运算的结果就是true
,只有当两边的值都是false的时候,结果才会是false。

例如:

1
2
3
4
5
<?php
$a=true;
$b=false;
var_dump($a || $b)
?>

输出结果:

1
bool(true)

短路问题:

1
2
3
4
5
6
<?php
$a=true;
$b=1;
&a || $ ++b;
echo $b;
?>

输出结果:

1

3.逻辑异或

xor

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

1
2
3
4
5
<?php
$a=false;
$b=true;
var_dump($a xor $b);
?>

输出结果:

1
bool(true)

4.逻辑非

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

1
2
3
4
<?php
$a=false;
var_dump(!$a);
?>

输出结果:

1
bool(true)

5.其他运算符
1.?:
三元运算符
格式: 表达式1?表达式2:表达式3:
如果表达式1的值为true,那么就执行表达式2,否则就执行表达式3
例如:

1
2
3
4
<?php
$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
<?php
$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
<?php
$a=400;
$b=40;
if($a>$b) echo "1";
echo "2";
?>

输出结果:

1
12

流程控制【2】-switch语句:
1
2
3
4
5
6
7
8
9
10
11
switch(表达式){
case1://case相当于==
语句块1;
break;
case2:
语句块2;
break;
.......
default:
语句块n
}

循环语句:1.while语句

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

2.do…while语句
1
2
3
do{
各种语句
}while(表达式);
3.for语句
1
2
3
for(表达式a;表达式b;表达式c){
各种语句
}

特殊的流程控制语句
1.break语句
2.continue语句
3.exit()语句 作用:结束当前整个程序的执行!

CATALOG
  1. 1. 一、初识PHP
  2. 2. 二、变量
    1. 2.0.0.0.1. 1.变量的声明
    2. 2.0.0.0.2. 2.变量的销毁
    3. 2.0.0.0.3. 3.变量的命令规则
    4. 2.0.0.0.4. 4.可变变量
    5. 2.0.0.0.5. 5.变量的引用赋值
  • 2.0.1. 三、变量类型
    1. 2.0.1.0.1. 1.变量类型简介
    2. 2.0.1.0.2. 二、变量类型相互转化
  • 2.0.2. 四、常量
    1. 2.0.2.0.1. 常量的命名:
    2. 2.0.2.0.2. 常量和变量的区别
    3. 2.0.2.0.3. 预定义常量
  • 2.0.3. 五、运算符
    1. 2.0.3.0.1. 算术运算符
    2. 2.0.3.0.2. 字符串运算符
    3. 2.0.3.0.3. 二元运算符
    4. 2.0.3.0.4. 比较运算符
    5. 2.0.3.0.5. php会自动转化类型
    6. 2.0.3.0.6. 逻辑运算符
    7. 2.0.3.0.7. 流程控制【1】-if语句:
    8. 2.0.3.0.8. 流程控制【2】-switch语句:
    9. 2.0.3.0.9. 2.do…while语句
    10. 2.0.3.0.10. 3.for语句