PHP从零开始--基础篇
一、 变量
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
PHP从零开始--基础篇相关推荐
- 从零开始学 Python 之基础篇
从零开始学 Python 之基础篇 前言 大家好,这里是「痴海」从零开始学习 Python 系列教程.此文首发于「痴海」公众号,欢迎大家去关注.学习一门语言最好的办法,就是教懂别人.在这公众号,我会从 ...
- 【从零开始学Skynet】基础篇(九):调试控制台服务
Skynet自带了一个调试控制台服务debug_console,启动它之后,可以查看节点的内部状态. 1.启用调试控制台 (1)在skynet/examples目录下新建main_console.lu ...
- vue实战入门基础篇五:从零开始仿门户网站实例-关于我们实现
上一篇:vue实战入门基础篇四:从零开始仿门户网站实例-网站首页实现https://blog.csdn.net/m0_37631110/article/details/123045334 一.目录 第 ...
- 从零开始编写网络游戏--基础篇(1)
最近2周比较忙,没有抽出时间来写Blog,不过在这段时间里面把整个思路理了一遍,梳理了一下大纲,以后会多抽时间来写Blog. 好了,言归正传,做任何事情都需要一定的基础,没有坚实的地基,是不可能建立雄 ...
- vue实战入门基础篇二:从零开始仿门户网站实例-开发框架搭建
上一篇:vue实战入门基础篇一:从零开始仿门户网站实例-前期准备工作 vue实战入门基础篇二:从零开始仿门户网-2022-2-23 21:00:27 一.目录 第一篇:前期准备工作 第二篇:开发框架搭 ...
- VBS基础篇 - 内置函数
VBS基础篇 - 内置函数 Date/Time 函数 函数 描述 CDate 把有效的日期和时间表达式转换为日期(Date)类型. Date 返回当前的系统日期. DateAdd 返回已添加指定时间间 ...
- 《微信小程序-基础篇》初识微信小程序
大家好,好久不见了,前段时间各种原因分享不稳定,后面一段时间内参与了主站的原力计划,请麻烦各位支持一下,万分感谢- 本系列将从零开始介绍微信小程序的开发,介绍完基础以后会实际同步开发一个微信小程序的项 ...
- 全民一起玩python求分享_全民一起玩Python 基础篇+提高篇
课程概述: 本课程是"全民一起玩Python"系列课程的前两部.该系列课程由杨洋博士精心制作,包括<基础篇>和<提高篇>,面向所有希望学习Python编程. ...
- 全民一起玩python提高篇_杨洋博士:全民一起玩Python之基础篇+提高篇
课程介绍 ▶制作精细.自带吐槽,每节课程(20分钟)均耗时数十小时精心打造! ▶"全民一玩Python"系列由杨洋博士精心制作,面向所有希望学习Python编程.进而能够在学习和工 ...
最新文章
- 数据结构复习:单链表
- python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless
- React Native基础入门教程:初步使用Flexbox布局
- oracle建表代码,Oracle 建表(一对多)代码及相关约束示例
- 存储引擎 boltdb 的设计奥秘?
- android 正在上传动画,安卓系统上传文件动态显示进度条,进度条经常卡在99%有时也会卡住不显示完整的文字。...
- C语言表上作业法运输问题,表上作业法解运输问题
- 徐小湛概率论与数理统计课件_概率论与数理统计视频教程下载
- (PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
- react项目 上线配置流程
- navicat mysql视图_Navicat教你如何做MySQL 视图
- 云计算时代运维的出路在哪?
- Apple开启双重认证过程
- C语言图形编程--俄罗斯方块制作(二)源代码
- Java方法反射的实现原理
- 在vue/html中添加单选按钮
- 计算两个时间戳之间的自然天数
- 基于Java-SQL sever实现人事管理系统-数据库课程设计(附源码)
- 硬盘容量单位有哪些?
- 【BIM+GIS】ArcGIS Pro2.8如何打开Revit模型,BIM和GIS融合?
热门文章
- More C++ Idioms
- opendir 从不兼容的指针类型赋值
- 计算机1级 计算机基础知识,计算机一级计算机基础及MSOffice应用:计算机基础知识...
- junit可执行但控制层无法执行_Junit测试时ContextLoader.getCurrentWebApplicationContext()返回空值...
- 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...
- python os操作
- 用 div 仿写 input 和 textarea 功能
- 端口以及服务常用cmd
- HIbernate的三种状态
- bzoj1084: [SCOI2005]最大子矩阵