PHP从零开始--基础篇

一、 变量

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   true17===17   false17!=17   false17!==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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node

‎ Table of Contents 1. 全局对象2. 代码执行优先级3. 模块导入4. 模块加载 4.1. 文件模块优先级4.2. 文件夹加载优先级 4.2.1. 包&#xff08;文件夹&#xff09;下的入口文件优先级4.2.2. 包加载优先级5. 核心模块的简单使用 5.1. events1 全局对象 globalconsole.log(globa…

一个关于WCF调用远程链接返回405错误不允许使用此方法的问题

最近在调试WCF的接口时一直返回“405不允许使用此方法”&#xff0c;这个问题困扰了大半天&#xff0c;网上查了各种办法&#xff0c;但是每个人遇到的问题不同还是不能解决。 最后无意之中发现问题所在&#xff0c;记录一下帮助后面的同学解决问题。 WCF远程方法会配置属性Web…

PHP从零开始--循环数组

一、循环 1.1单层for循环 1.1.1基础语法 for(初识变量;结束范围;累加/累减){ 重复执行的代码 } 1、 先初识化变量$i 2、 $i<100表达式进行判断 3、 跳入循环&#xff0c;执行重复代码 4、 累加或者累加 5、 再进行$i<100表达式判断 6、 再跳入循环&#xff0c;执行重复…

Spring Cloud(F版)搭建高可用服务注册中心

上一篇文章【Spring Cloud搭建注册中心】成功搭建了一个Eureka Server服务注册中心&#xff0c;不过相信细心的朋友都会发现&#xff0c;这个服务注册中心是一个单节点服务注册中心&#xff0c;万一发生故障或者服务器宕机&#xff0c;那所有的服务可就不能使用了&#xff0c;这…

Python(60)_闭包

1 、闭包的概念 #-*-coding:utf-8-*- 1、闭包&#xff1a;内部函数调用外部函数的变量def outer():a 1def inner():print(a)print(inner.__closure__) outer() print(outer.__closure__) 2 闭包的使用 #-*-coding:utf-8-*- 1、闭包&#xff1a;内部函数调用外部函数的变量 …

PHP从零开始--错误处理函数

一、错误处理 1.1错误种类 1.1.1Notices 比如没有定义变量确使用了会报notice错误&#xff0c;只是提醒注意&#xff0c;不影响后续代码执行 1.1.2Warnings 这是警告错误&#xff0c;比如include引入一个并不存在的文件&#xff0c;不影响后续代码执行 1.1.3Fatal Erro…

第四单元博客总结——暨OO课程总结

第四单元博客总结——暨OO课程总结 第四单元架构设计 第一次UML作业 简单陈述 第一次作业较为简单&#xff0c;只需要实现查询功能&#xff0c;并在查询的同时考虑到性能问题&#xff0c;即我简单的将每一次查询的结果以及递归的上层结果都存储下来&#xff0c;使用一个Boolean…

两列布局:6种方法

面试过程中总会文档两列布局&#xff0c;左边等宽&#xff0c;右边自适应几种方法&#xff1f;以下提供6种为君解忧 <div id"wrap"><div id"left"></div><div id"right"></div> </div>需求就是左侧定宽&…

PHP从零开始--数据库

文章目录一、 数据库简介1.1概念1.2命令行操作1.3连接数据库1.4配置环境变量二、 数据库的相关操作2.1显示所有仓库2.2创建仓库2.3删除仓库2.4切换仓库三、 数据表的相关操作3.1概念3.2显示所有的数据表3.3创建数据表3.2修改字段名3.3查看表结构3.4添加字段3.5删除字段3.6更改数…

常用SQL语句

将记录的某一字段值设置为空&#xff08;null&#xff09;UPDATE 表名 SET 字段名NULL WHERE 条件字段名123; 更新整列为某个值UPDATE 表名 SET 字段名NULL 转载于:https://www.cnblogs.com/zhcBlog/p/10254066.html

如何下载js类库

https://bower.io/ 这个已经淘汰 https://learn.jquery.com/jquery-ui/environments/bower/ Web sites are made of lots of things — frameworks, libraries, assets, and utilities. Bower manages all these things for you. Keeping track of all these packages and mak…

Python 常用系统模块整理

Python中的常用的系统模块中部分函数等的整理 random: 随机数sys: 系统相关os: 系统相关的subprocess: 执行新的进程multiprocessing: 进程相关threading: 线程相关pickle: 将对象转换成二进制文件time: 时间datetime: 基本的日期和时间类型timeit: 准确测量小段代码的执行时间…

PHP从零开始--字段修饰符数据操作SQL语言

文章目录一、 字段修饰符1.1主键1.2自动增长1.3非空1.4默认值1.5外键二、 对数据的操作2.1增加数据2.2删除数据2.3更新数据2.4查询数据2.4.1查询所有的数据2.4.2查询指定字段2.4.3去除重复字段2.4.4where表达式详解2.4.5分组查询2.4.6排序三、 SQL语言3.1DML3.2DDL3.3DCL一、 字…

scrapy爬虫框架windows下的安装问题

windows操作系统python版本是3.6.0通过Anaconda命令conda install scrapy安装scrapy,安装过程中没有问题。然后在命令行输入命令准备新建项目时&#xff0c;输入 scrapy startproject firstscrapy时出现了from cryptography.hazmat.bindings._openssl import ffi, libImportErr…

charles使用说明(基于mac)

1. Charles简介 1.1 Charles 需要java的运行环境支持&#xff0c;支持Windows、Mac&#xff1b;Fiddler不支持Mac。故Charles是在Mac下常用的网络封包截取工具。 1.2 Charles原理&#xff1a;通过将自己设置成系统的网络访问代理服务器&#xff0c;使得所有的网络访问请求都通过…

看完就懂的连表查询

文章目录一、表与表之间的关系1.1一对一1.2一对多1.3多对多二、 连表查询2.1概念2.2笛卡尔积2.3内连接2.4外连接2.4.1左外连接2.4.2右外连接2.4.3全连接2.4.4navicat导入导成sql语句2.4.5练习三、 子查询3.1概念3.2练习3.2.1查询工资最高的员工所有信息3.2.2查询工资比7654工资…

jpa

Transactionalpublic void testPerson() {try {Person person1 personDao.findById(1);person1.setAddress("天津");} catch (Exception e) {e.printStackTrace();}} service就这样一个方法&#xff0c;数据库中数据也会进行更新 将查询出来的数据对象赋值,然后不执…

影视感悟专题---1、B站-魔兽世界代理及其它乱七八糟

影视感悟专题---1、B站-魔兽世界代理及其它乱七八糟 一、总结 一句话总结&#xff1a; 看过的东西都可以学下&#xff0c;这样既可以学习那些东西&#xff0c;都是对自己生活学习有帮助的&#xff0c;还可以弥补自己每天学的东西的不够 1、《美丽心灵》中的博弈论共赢理论指的啥…

三分钟掌握PHP操作数据库

这里写自定义目录标题一、 操作数据库&#xff08;mysql&#xff09;的工具1.1命令行工具1.2navicat界面化工具1.3phpAdmin界面化工具二、 表单传值2.1文本框和文本域传值2.2单选框传值2.4下拉菜单传值三、 php连接数据库3.1连接方式介绍3.2mysqli基础步骤3.2.1创建连接3.2.2选…

go语言之进阶篇主协程先退出导致子协程没来得及调用

1、主协程先退出导致子协程没来得及调用 示例&#xff1a; package mainimport ("fmt""time" )//主协程退出了&#xff0c;其它子协程也要跟着退出 func main() {go func() {i : 0for {ifmt.Println("子协程 i ", i)time.Sleep(time.Second)}}(…