一、 变量
1.1概念
变量是存储数据的用的容器。
1.2定义变量
变量名的语法规则:
- 可以是数字、字母、下划线,但是不能以数字开头
- 不能出现空格
- 变量名是区分大小写
- 变量名不能是系统中的关键字
- 行业约定的语法规范
驼峰命名法
比如 myname 定义成 myName
帕斯卡命名法
比如myname 定义成 MyName
下划线命名法
比如myname 定义成 my_name
1.2销毁变量
unset(变量名)
1.3变量传值
1.3.1值传递
总结:值传递相当于是复制了一份数据,对原来的进行任何操作不会影响后面的
1.3.2引用传递
总结:引用赋值是两个变量指向同一个数据,其中一个变化了,另外一个也会跟着变化
1.4预定义变量
二、 常量
2.1概念
常量里面存储的数据在脚本运行期间是不会改变的。常量名必须是大写的
2.2常量定义
2.3常量两种定义方式区别
const定义常量只能放在顶级目录,不能放在if语句或者function的{}的里面,define定义常量可以放在任何位置。
2.3内置常量
__LINE__和__DIR__因为会随着环境的变化而变化,所以又称为魔术常量。
三、 数据类型
3.1种类
442
四种标量:int(整数) float(浮点) string(字符串) bool(布尔)
两种复杂数据类型:Array(数组) Object(对象)
两种特殊的数据类型:null resource(资源)
3.2单引号和双引号的区别
1、单引号的效率要高
2、双引号可以解析变量,单引号不可以
3.3数据类型转换
3.3.1弱类型转换
(1)数字变字符串
(2)字符串变数字
3.3.2强制转换
3.4补充常用的方法
isset()判断变量是否存在
defined()判断常量是否存在
empty()判断变量是否为空
gettype()获取变量存储的数据类型
settype()强制设置变量里的数据类型
is_numeric()判断是否是数字
var_dump()打印详细的数据类型
四、 运算符
4.1算术运算符
4.1.1一元运算符
++ –
4.1.2二元运算符
-
-
- / %
-
注意%如果是小数的话是先向下取整然后再取余
4.2比较运算符
> >= < <= == === != !==
“17”==17 true
“17”===17 false
“17”!=17 false
“17” !==17 true
规律:
!=和==只判断值是否相等 !==和===不仅要判断值还要判断数据类型
4.3逻辑运算符
&& || !
true&&true true
false&& true false
true&&false false
false&&false false
&&的短路现象:一假为假 所以只要前面是false 整体结果为false
true||true true
true||false true
false||true true
false||false false
||的短路现象:一真为真 只要前面是真 整体结果为true
4.4赋值运算符
= += -= *= /= %=
4.5连接运算符
.
4.6三元运算符
表达式?表达式成立执行的结果:表达式不成立执行的结果
4.7运算符优先级
https://www.php.net/manual/zh/language.operators.precedence.php
1、+±-(有小括号先算小括号里面的)
2、!
3、* / %
4、+ -
5、比较运算符
6、赋值运算符
五、补充练习题
‘5.5’======5.5
‘5.5abc’=====5.5
‘’======0
‘abc5.5’======0
六、条件语句
6.1if语句
<?php
// 如果当前时间是8点 开始早上上课
// 如果当前时间是12点 开始吃午饭
// 如果当前时间是14点 开始做下午练习
// 如果当前时间是18点 结束上课
// 如果都不满足 告诉今天没来上课
// echo time();date_default_timezone_set('PRC');
// echo date('Y-m-d H:i:s',time());$h=date('H',time());if($h>=8&&$h<12){echo '开始上早课';}else if($h>=12&&$h<14){echo '吃午饭';}else if($h>=14&&$h<18){echo '开始下午做练习';}else if($h>=18&&$h<=24){echo '下课啦';}else{echo '今天没来,白报名了';}?>
6.2switch语句
七、文件引入
7.1为什么引入
每个网站的头部和底部基本上一样的,我们没必要每个页面都写一会,我们可以写一遍header.html(头部)和footer.html(底部),然后哪个页面需要再引入使用就可以
7.2基本语法
include require
include_once require_oneinclude ‘文件地址’;
include (‘文件地址’)其他同理
总结如下:
1、 require引入的文件如果不存在会报致命错误,而且后续代码也不会执行。
2、 include引入的文件如果不存在会报警告错误,而且后续代码可以执行。
3、 include_once和require_once引入的文件如果重复引入,还是加载一次
4、 include和require引入几次就加载几次
八、位运算符
实际项目中基本用不到,但是面试的时候可能会问到
8.1位与运算符
3&5
计算方法:先把左右的两个十进制数转换成二进制,然后把两个二进制的数竖向排列
,规律是一假为假,算出来的二进制的数还要再转换成十进制
先把3转换成二进制 除2取余法
0011
再把5转换成二进制 除2取余法 结果是0101
&是一假为假 假就认为是0
0011
0101
0 0 0 1
如果把0001转换成十进制,算法如下:
120+0*21+022+0*23=1+0+0+0=1
8.2位或运算符
3|5
规律:
先把左右两个数转换成二进制,除2取余法,倒过来,高位补零,还是两个二进制竖向排列,规则是,一个为true(1),整体结果为true(1),把得到的二进制数转换成十进制
3转换成二进制是0011
5转换成二进制是0101
0011
0101
0 1 1 1
所以转换的结果是120+1*21+122+0*23=1+2+4+0=7