一、 变量

1.1概念

变量是存储数据的用的容器。

1.2定义变量

变量名的语法规则:

  1. 可以是数字、字母、下划线,但是不能以数字开头
  2. 不能出现空格
  3. 变量名是区分大小写
  4. 变量名不能是系统中的关键字
  5. 行业约定的语法规范

驼峰命名法
比如 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

PHP从零开始--基础篇相关推荐

  1. 从零开始学 Python 之基础篇

    从零开始学 Python 之基础篇 前言 大家好,这里是「痴海」从零开始学习 Python 系列教程.此文首发于「痴海」公众号,欢迎大家去关注.学习一门语言最好的办法,就是教懂别人.在这公众号,我会从 ...

  2. 【从零开始学Skynet】基础篇(九):调试控制台服务

    Skynet自带了一个调试控制台服务debug_console,启动它之后,可以查看节点的内部状态. 1.启用调试控制台 (1)在skynet/examples目录下新建main_console.lu ...

  3. vue实战入门基础篇五:从零开始仿门户网站实例-关于我们实现

    上一篇:vue实战入门基础篇四:从零开始仿门户网站实例-网站首页实现https://blog.csdn.net/m0_37631110/article/details/123045334 一.目录 第 ...

  4. 从零开始编写网络游戏--基础篇(1)

    最近2周比较忙,没有抽出时间来写Blog,不过在这段时间里面把整个思路理了一遍,梳理了一下大纲,以后会多抽时间来写Blog. 好了,言归正传,做任何事情都需要一定的基础,没有坚实的地基,是不可能建立雄 ...

  5. vue实战入门基础篇二:从零开始仿门户网站实例-开发框架搭建

    上一篇:vue实战入门基础篇一:从零开始仿门户网站实例-前期准备工作 vue实战入门基础篇二:从零开始仿门户网-2022-2-23 21:00:27 一.目录 第一篇:前期准备工作 第二篇:开发框架搭 ...

  6. VBS基础篇 - 内置函数

    VBS基础篇 - 内置函数 Date/Time 函数 函数 描述 CDate 把有效的日期和时间表达式转换为日期(Date)类型. Date 返回当前的系统日期. DateAdd 返回已添加指定时间间 ...

  7. 《微信小程序-基础篇》初识微信小程序

    大家好,好久不见了,前段时间各种原因分享不稳定,后面一段时间内参与了主站的原力计划,请麻烦各位支持一下,万分感谢- 本系列将从零开始介绍微信小程序的开发,介绍完基础以后会实际同步开发一个微信小程序的项 ...

  8. 全民一起玩python求分享_全民一起玩Python 基础篇+提高篇

    课程概述: 本课程是"全民一起玩Python"系列课程的前两部.该系列课程由杨洋博士精心制作,包括<基础篇>和<提高篇>,面向所有希望学习Python编程. ...

  9. 全民一起玩python提高篇_杨洋博士:全民一起玩Python之基础篇+提高篇

    课程介绍 ▶制作精细.自带吐槽,每节课程(20分钟)均耗时数十小时精心打造! ▶"全民一玩Python"系列由杨洋博士精心制作,面向所有希望学习Python编程.进而能够在学习和工 ...

最新文章

  1. 数据结构复习:单链表
  2. python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless
  3. React Native基础入门教程:初步使用Flexbox布局
  4. oracle建表代码,Oracle 建表(一对多)代码及相关约束示例
  5. 存储引擎 boltdb 的设计奥秘?
  6. android 正在上传动画,安卓系统上传文件动态显示进度条,进度条经常卡在99%有时也会卡住不显示完整的文字。...
  7. C语言表上作业法运输问题,表上作业法解运输问题
  8. 徐小湛概率论与数理统计课件_概率论与数理统计视频教程下载
  9. (PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
  10. react项目 上线配置流程
  11. navicat mysql视图_Navicat教你如何做MySQL 视图
  12. 云计算时代运维的出路在哪?
  13. Apple开启双重认证过程
  14. C语言图形编程--俄罗斯方块制作(二)源代码
  15. Java方法反射的实现原理
  16. 在vue/html中添加单选按钮
  17. 计算两个时间戳之间的自然天数
  18. 基于Java-SQL sever实现人事管理系统-数据库课程设计(附源码)
  19. 硬盘容量单位有哪些?
  20. 【BIM+GIS】ArcGIS Pro2.8如何打开Revit模型,BIM和GIS融合?

热门文章

  1. More C++ Idioms
  2. opendir 从不兼容的指针类型赋值
  3. 计算机1级 计算机基础知识,计算机一级计算机基础及MSOffice应用:计算机基础知识...
  4. junit可执行但控制层无法执行_Junit测试时ContextLoader.getCurrentWebApplicationContext()返回空值...
  5. 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...
  6. python os操作
  7. 用 div 仿写 input 和 textarea 功能
  8. 端口以及服务常用cmd
  9. HIbernate的三种状态
  10. bzoj1084: [SCOI2005]最大子矩阵