中国建设银行太原招聘信息网站自己做网络棋牌网站流程

pingmian/2026/1/25 13:57:08/文章来源:
中国建设银行太原招聘信息网站,自己做网络棋牌网站流程,页面模板怎么没有了,招标网站平台有哪些文章目录 1.行级锁的概念2.行锁的概念以及基本使用2.1.行锁的概念2.2.常见的SQL语句所对应的行锁类别2.3.行锁的基本使用 3.间隙锁和临键锁的概念以及基本使用3.1.间隙锁和临键锁的概念3.2.间隙锁和临键锁的基本使用 1.行级锁的概念 行级锁指的是#xff0c;每次操作锁住的是… 文章目录 1.行级锁的概念2.行锁的概念以及基本使用2.1.行锁的概念2.2.常见的SQL语句所对应的行锁类别2.3.行锁的基本使用 3.间隙锁和临键锁的概念以及基本使用3.1.间隙锁和临键锁的概念3.2.间隙锁和临键锁的基本使用 1.行级锁的概念 行级锁指的是每次操作锁住的是表中一行的数据锁的力度最小发生锁冲突的概率也是最低的并且并发度也是最高的行级锁主要应用于InnoDB存储引擎中。 在InnoDB存储引擎中表中每一行数据都是基于索引组织的在索引中分为聚集索引和二级索引聚集索引的叶子节点挂的是表中的一行数据二级索引的叶子节点挂的是表中每条数据的主键因此在InnoDB存储引擎中表中的数据都是基于索引组织存放的并且基于索引组织存放后叶子节点之间是有序存储的还形成了双向链表。 行级锁是通过索引结构中每行数据对应的索引项来实现的索引项也就是索引元素、聚集索引中的叶子节点主键每个叶子节点都对应表中的每一行数据因为行级锁是通过表中索引结构的索引元素来添加行数锁的并非是对表中的每条记录添加的行级锁 对于行级锁主要分为以下三类 行锁 顾名思义就是锁定单行记录的锁主要是为了防止当前事务对这条数据处理时其他的事务也对这条数据进行处理在RC、RR隔离级别下都支持行锁。 间隙锁 间隙锁指的是锁住两个叶子节点之间间隙部分的索引元素但是不锁定对应的记录只是要确保索引元素之间的间隙不发生改变以免其他事务通过索引元素之间的间隙元素写入数据产生幻读的现象。在RR隔离级别下支持。 如下图所示只是为了锁住两个叶子节点间的索引元素间隙例如29和34两个索引元素只是为了锁定29-34之间的间隙防止新数据通过29-34之间的一个索引元素写入数据从而导致幻读的现象。 临键锁 临键锁指的是将行锁与间隙锁组合锁定既锁定数据又要锁定住叶子节点之间的间隙元素在RR隔离级别下支持。 2.行锁的概念以及基本使用 2.1.行锁的概念 在行锁中还会分为两种类型的行锁一种是共享锁S另外一种是排它锁X。 默认的情况下InnoDB在RR事务隔离级别运行行锁通过next-key锁进行搜索和索引扫描防止幻读。 当我们针对唯一索引的字段进行检索时对已存在的记录进行匹配将会优化为行锁。 InnoDB的行锁是针对索引加的锁因此当不通过索引字段检索数据时默认会将表加上一个表锁。 1共享锁 在共享锁中允许多个事务读取读取相同数据集的共享锁语句但是拒绝排它锁处理与共享锁相同的数据集。 例如事务A查询表中小明人员的年龄产生了行共享锁此时事务B也查询小明人员的年龄产生共享锁共享锁之间互相兼容因此两个事务同时读取相同数据集的内容是允许的没有任何问题。 但是当事务A查询表中小明人员的年龄时事务B此时要修改小明人员的信息修改操作会产生排它锁事务A正在读取这条数据事务B却要修改此时会出现行锁冲突使事务B的修改语句一直处于阻塞状态。只有当事务A针对这条数据处理完提交事务后事务B才能成功执行对应的修改SQL。 结论共享锁与共享锁之间相互兼容但是共享锁与排它锁之间互斥会产生冲突此时只有当共享锁释放后排它锁才能执行。 2排它锁 在排它锁中不允许事务读取相同数据集的共享锁和排它锁。 例如事务A正在修改姓名为小明的数据此时事务B也要修改或者查询姓名为小明的数据此时无论是修改或者查询都会处于阻塞状态因为事务A正在操作这条数据并且产生了排它锁而事务B的修改也会产生排它锁、查询会产生共享锁无论排它锁还是共享锁都被事务A的排它锁互斥从而产生行锁冲突。 结论排它锁与共享锁和其他的排它锁都互斥会导致行锁冲突对于一条数据只有当排它锁释放之后才能对这条数据进行处理。 2.2.常见的SQL语句所对应的行锁类别 SQL行锁类型说明INSERT排它锁自动加锁UPDATE排它锁自动加锁DELETE排它锁自动加锁SELECT不加任何锁SELECT…LOCK IN SHARE MODE共享锁手动在SELECT之后添加LOCK IN SHARE MODESELECT…FOR UPDATE排它锁手动在SELECT之后添加FOR UPDATE 2.3.行锁的基本使用 1普通的select查询不会加任何的锁此处略过没有效果 2验证共享锁与共享锁之间的兼容 首先开启一个事务创建一个共享锁然后在其他客户端也执行相同的查询共享锁观察效果。 1.首先开启一个事务 mysql begin;2.创建一个行共享锁 mysql select * from xscjb limit 1 lock in share mode; ------------------------------------ | xh | xm | ywcj | sxcj | yycj | pjcj | ------------------------------------ | 1 | 小明 | 66 | 75 | 93 | NULL | ------------------------------------3.查看行共享锁 mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; ------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | ------------------------------------------------------------------------- | db_1 | xscjb | NULL | TABLE | IS | NULL | | db_1 | xscjb | PRIMARY | RECORD | S | 1 | ------------------------------------------------------------------------- #lock_mode为S时就表示是行共享锁4.其他客户端也执行相同的查询语句没有任何影响 mysql select * from xscjb limit 1 lock in share mode; ------------------------------------ | xh | xm | ywcj | sxcj | yycj | pjcj | ------------------------------------ | 1 | 小明 | 66 | 75 | 93 | NULL | ------------------------------------3验证共享锁与排他锁之间的兼容 首先开启一个事务查询xscjb中xh为1的数据不提交然后再开启一个事务更改id为2的数据观察效果紧接着也更改id为1的数据。 1.首先开启一个事务 mysql begin;2.创建一个行共享锁查询xh为1的数据 mysql select * from xscjb where xh 1 lock in share mode; ------------------------------------ | xh | xm | ywcj | sxcj | yycj | pjcj | ------------------------------------ | 1 | 小明 | 66 | 75 | 93 | NULL | ------------------------------------ 1 row in set (0.00 sec)3.查看行共享锁 mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; ----------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | ----------------------------------------------------------------------------- | db_1 | xscjb | NULL | TABLE | IS | NULL | | db_1 | xscjb | PRIMARY | RECORD | S,REC_NOT_GAP | 1 | ----------------------------------------------------------------------------- #lock_mode为S时就表示是行共享锁4.再开启一个事务修改xh为2的数据正常修改 mysql update xscjb set ywcj 100 where xh 2;5.紧接着修改与第一个事务相同数据集的数据会一直处于阻塞状态 mysql update xscjb set ywcj 100 where xh 1;#只有当第一个事务提交完毕后才能对相同的数据集进行处理4验证排它锁与排他锁之间的冲突 首先打开第一个事务修改xh为1的数据产生排它锁然后再打开另一个事务也修改xh为1的数据验证排它锁与排它锁之间的互斥。 1.首先开启一个事务 mysql begin;2.修改xh为1的数据 mysql update xscjb set ywcj 100 where xh 1;3.查看产生的排它锁 mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; ----------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | ----------------------------------------------------------------------------- | db_1 | xscjb_logs | NULL | TABLE | IX | NULL | | db_1 | xscjb | NULL | TABLE | IX | NULL | | db_1 | xscjb | PRIMARY | RECORD | X,REC_NOT_GAP | 1 | ----------------------------------------------------------------------------- #lock_mode为X表示排它锁4.再开启一个事务同样修改xh为1的数据 mysql update xscjb set ywcj 100 where xh 1;#会一直处于阻塞状态只有当第一个事务提交完成后这个操作才能被执行。5当检索的字段没有索引时字段添加表锁 xscjb表中xm字段是没有索引的下面我们在SQL语句中就使用这个没有添加索引的字段作为检索条件观察会有什么效果。 1.开启事务A修改xm为小黑的数据 mysql begin; Query OK, 0 rows affected (0.00 sec)mysql update xscjb set ywcj 100 where xm 小黑;2.开启事务B修改小李的数据 mysql begin; Query OK, 0 rows affected (0.00 sec)mysql update xscjb set ywcj 100 where xm 小李;此时会发现小黑的数据修改成功了但是小李的数据却不能修改并且即使是有排它锁只要不是相同的数据集就可以修改那么目前是不能被修改的这样就说明了当检索的字段不是索引字段时那么行锁就会升级为表锁只有当事务A提交后事务B才能对表中的行进行处理更验证了行锁是根据索引去添加的。 我们只需要将xm字段添加一个索引就不会导致行锁升级为表锁了。 3.间隙锁和临键锁的概念以及基本使用 3.1.间隙锁和临键锁的概念 间隙锁是锁的索引结构中两个叶子节点之间间隙的索引元素只是锁住间隙不锁住数据。 例如两个叶子节点分别是7和10间隙锁就会锁住7-10之间的间隙此时插入数据时就不能使用7-10之间的 值作为主键值避免间隙被使用。 间隙锁唯一的目的就是防止其他的事务将数据插入到两个叶子节点之间的间隙位置间隙可以共存一个事务采用的间隙锁不会阻止另一个事务在同一间隙上采用的间隙锁。也就是说多个事务可以同时开启相同的间隙锁。 为什么要用间隙锁和临键锁呢因为在查询、修改某个范围的数据时如果没有间隙锁那么其他事务就可能会在这一段间隙内写入数据从而影响当前事务提交数据的准确性因为我们要锁定这个范围内的间隙已经对应的数据。 3.2.间隙锁和临键锁的基本使用 1使用唯一索引列进行等值检索时如果给不存在的记录添加锁后会被设置成间隙锁。 开启一个事务A修改xscjb中的一条数据但是修改的数据在表中不存在观察产生的间隙锁。 1.开启事务A修改表中不存在的数据 mysql begin; Query OK, 0 rows affected (0.00 sec)mysql update xscjb set ywcj 120 where xh 10; #当修改的数据时表中不存在的数据会自动将这个主键范围内设置一个间隙锁2.查看产生的间隙排它锁 mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; ------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | ------------------------------------------------------------------------- | db_1 | xscjb | NULL | TABLE | IX | NULL | | db_1 | xscjb | PRIMARY | RECORD | X,GAP | 13 | ------------------------------------------------------------------------- #lock_mode为GAP表示是间隙锁 #lock_data这里的13表示锁住的间隙最大是13最小是从距离13最近的范围也就是88-13之间产生了间隙锁3.此时开启事务B写入主键为11的数据将会阻塞 mysql insert into xscjb values (11,小笑,11,11,11,NULL);首先我们来查询一下xscjb表的数据可以看到主键8-13这个范围内没有其他数据此时我们开启一个事务A来修改主键为10的数据主键为10的数据不存在并处于8-13的间隙内此时就会产生一个间隙锁间隙锁的范围就是8-13可以从lock_data这里看到最大的间隙范围值对应的最小间隙范围值就是距离13最近的一个值也就是8-13这时开启了事务B事务B想要插入xh为11的数据则会被阻塞因为xh为11这个值处于8-13的间隙内因此会被阻塞当事务A提交后阻塞才会被释放。 2使用普通索引非唯一索引进行等值检索一直向后遍历直到直到不满足检索条件的数据此时既会产生间隙锁又会产生临键锁。 我们的条件是对非唯一索引字段进行检索那么一次检索中可能就会出现多条相同的值例如我们检索条件是nl18那么表中可能有很多条nl18的数据查询nl18的数据时会加上共享锁但是我们不能只锁住这一行数据因为还会有很多条记录存在因此还需要接着往后面遍历直到找到一个不满足条件值例如检索到了nl26的数据此时后面就没有nl18的数据了那么此时会对所有nl18的数据添加临键锁并且还会对nl18~26之前的所有间隙添加间隙锁保证数据获取的一致性。 首先为xscjb表中的ywcj字段添加一个普通索引。 mysql create index idx_xscjb_ywcj on xscjb(ywcj);使用普通索引作为检索条件观察添加的间隙锁和临键锁。 mysql select * from xscjb where ywcj 88 lock in share mode; ------------------------------------ | xh | xm | ywcj | sxcj | yycj | pjcj | ------------------------------------ | 8 | 小李 | 88 | 77 | 66 | NULL | | 13 | 小赵 | 88 | 77 | 66 | NULL | | 18 | 小王 | 88 | 77 | 66 | NULL | | 25 | 小江 | 88 | 77 | 66 | NULL | ------------------------------------mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; --------------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | --------------------------------------------------------------------------------- | db_1 | xscjb | NULL | TABLE | IS | NULL | | db_1 | xscjb | idx_xscjb_ywcj | RECORD | S | 88, 8 | | db_1 | xscjb | idx_xscjb_ywcj | RECORD | S | 88, 13 | | db_1 | xscjb | idx_xscjb_ywcj | RECORD | S | 88, 18 | | db_1 | xscjb | idx_xscjb_ywcj | RECORD | S | 88, 25 | | db_1 | xscjb | PRIMARY | RECORD | S,REC_NOT_GAP | 25 | | db_1 | xscjb | PRIMARY | RECORD | S,REC_NOT_GAP | 18 | | db_1 | xscjb | PRIMARY | RECORD | S,REC_NOT_GAP | 13 | | db_1 | xscjb | PRIMARY | RECORD | S,REC_NOT_GAP | 8 | | db_1 | xscjb | idx_xscjb_ywcj | RECORD | S,GAP | 100, 1 | --------------------------------------------------------------------------------- 10 rows in set (0.00 sec)可以看到使用普通索引查询出多条ywcj为88的数据此时对于所有查询出来88的数据都会添加一个临键锁并且也会对88-100之间的间隙设置一个间隙锁。此时ywcj为88的数据也不允许被排它锁进行修改88~100之间的间隙也不允许写入数据。 3使用唯一索引检索一个范围观察加的锁。 我们使用唯一索引字段去检索一个范围查询观察加的锁。 1.开启事务检索唯一索引的范围查询 mysql begin;mysql select * from xscjb where xh 15 lock in share mode; ------------------------------------ | xh | xm | ywcj | sxcj | yycj | pjcj | ------------------------------------ | 18 | 小王 | 88 | 77 | 66 | NULL | | 19 | 小黑 | 100 | 77 | 66 | NULL | | 25 | 小江 | 88 | 77 | 66 | NULL | ------------------------------------2.观察添加了什么锁 mysql select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks; -------------------------------------------------------------------------------------- | object_schema | object_name | index_name | lock_type | lock_mode | lock_data | -------------------------------------------------------------------------------------- | db_1 | xscjb | NULL | TABLE | IS | NULL | | db_1 | xscjb | PRIMARY | RECORD | S | supremum pseudo-record | | db_1 | xscjb | PRIMARY | RECORD | S | 25 | | db_1 | xscjb | PRIMARY | RECORD | S | 19 | | db_1 | xscjb | PRIMARY | RECORD | S | 18 | --------------------------------------------------------------------------------------当使用唯一索引进行范围检索时会对检索出来的数据都加一个临键锁不允许被其他事务处理保证数据一致性并且并不知道每次检索会出来多少条数据因此还有一个supremum pseudo-record标志也是临键锁表示正无穷大无论检索出来多少条数据只要是这个范围的数据都会添加临键锁防止其他事务修改数据。

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

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

相关文章

wordpress 手机 插件南京网站关键词优化咨询

【问题描述】 [887. 鸡蛋掉落] 你将获得 K 个鸡蛋&#xff0c;并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的&#xff0c;如果一个蛋碎了&#xff0c;你就不能再把它掉下去。你知道存在楼层 F &#xff0c;满足 0 < F < N 任何从高于 F 的楼层落…

网站建设目标和功能介绍もんむす くえすと资源网

一、Mysql概述 MySQL 是一个开放源码的小型关联式数据库管理系统&#xff0c;开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低&#xff0c;尤其是开放源码这一特点&#xff0c;许多中小型网站为了降…

珠海网站建设模板猪八戒设计网站如何做兼职

前言Centos6.5默认自带python2.6.6&#xff0c;很多模块无法使用&#xff0c;建议安装2.7以后版本较为稳定&#xff0c;需要升级到2.7。一、安装过程1. 先安装相应的依赖yum -y install gcc openssl-devel bzip2-devel2. 下载软件包cd /optwget https://www.python.org/ftp/pyt…

php网站的首页wordpress企业产品列表

情景&#xff1a;用户发起request&#xff0c;并等待response返回。在本些views中&#xff0c;可能需要执行一段耗时的程序&#xff0c;那么用户就会等待很长时间&#xff0c;造成不好的用户体验&#xff0c;比如发送邮件、手机验证码等使用celery后&#xff0c;情况就不一样了…

教育类网站开发文档国外 精美 网站

如错误消息所示&#xff0c;drop_duplicates不能用于数据帧中的列表。但是&#xff0c;您可以在作为str的数据帧上删除重复项&#xff0c;然后使用结果中的索引从原始df中提取行。设置df pd.DataFrame({Keyword: {0: apply, 1: apply, 2: apply, 3: terms, 4: terms},X: {0: […

风景区网站代码山东做网站公司有哪些

目录 1:引入maven 2:代码实现 3.导出通讯录信息到Excel文件 4.生成并下载Excel文件部分解释 1:引入maven 添加依赖:首先,在你的项目中添加EasyExcel库的依赖。你可以在项目的构建文件(如Maven的pom.xml)中添加以下依赖项:<dependency><groupId>com.alib…

越秀高端网站建设高端 网站设计公司

一、规则 用户至少属于一个组,在创建时如果不指定组,将会创建同名的组 用户只能有一个基本组(主组),但可以隶属于多个附加组 如果一个组作为某用户的基本组,此组将不能被删除 UID: 用户标识 GID: 组的标识 root管理员的uid及gid 都为0 二、用户的配置文件 1./etc/passwd …

网站开发的研究方法天门市基础建设网站

来源&#xff1a;MoneyDJ、半导体行业观察继大陆的RISC-V联盟成立之后&#xff0c;台湾RISC-V联盟也在今年正式成立&#xff0c;这也让RISC-V的议题热度逐渐加温&#xff0c;事实上这也是许多人看好能够足以与ARM竞争的架构&#xff0c;加上目前许多国际大厂陆续采用RISC-V架构…

网站优化合同模板建设展示类网站的意义

From: http://js8.in/526.html 为了开发项目的方便&#xff0c;要实现Ubuntu跟windows文件共享&#xff0c;需要在Ubuntu下搭建samba服务器&#xff0c;下面来说说Ubuntu下安装、配置Samba的详细步骤~ Ubuntu下安装Samba 可以使用新立得来搜索Samba安装~没有请更新软件源&…

宁波建网站方式扁平式网站模板

亚马逊后台的财务数据包是刚进这个行业的财务人员最希望能了解熟悉的&#xff0c;这块也是相对于国内财务比较有难度的内容&#xff0c;主要难点是亚马逊平台是新的东西&#xff0c;国内财务对规则&#xff0c;费用内容&#xff0c;流程都比较懵&#xff0c;另外就是各项资料都…

自己有云主机 怎么网站备案wordpress网站检测

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/north 目录 技术融合背景与价值鸿蒙分布式架构解析DeepSeek技术体系剖析核心整合架构设计智能调度系统实现…

潍坊兆通网站建设适合女生去的培训机构

二进制位的原码反码补码转换 以及 按位与&、按位或|、异或^ 一、二进制位的原码、反码、补码转换1.机器数2.原码3.反码4.补码 二、按位与&、按位或|、异或^ 最近在练习LeetCode上的算法题&#xff0c;遇到了位运算求解的问题&#xff0c;作以复习总结。 一、二进制位的…

机票售票网站开发网视易网站建设

作者 | 刘姝 供稿 | 浪潮 MLPerf竞赛由图灵奖得主大卫帕特森&#xff08;David Patterson&#xff09;联合谷歌、斯坦福、哈佛大学等单位共同成立&#xff0c;是国际上最有影响力的人工智能基准测试之一。在MLPerf V0.7推理竞赛开放赛道中&#xff0c;浪潮信息通过模型压缩优…

北京微网站建设公司哪家好新网站2个月没有收录

自定义指令 自定义指令就是自己定义的指令&#xff0c;是对 DOM 元素进行底层操作封装 ,程序化地控制 DOM&#xff0c;拓展额外的功能 全局定义 Vue.directive(指令名字, definition) 指令名&#xff1a;不包括v-前缀&#xff0c;使用时候包括v-&#xff0c;v-指令名defini…

建设品牌公司网站页面模板配置

目录 前言&#xff1a; 场景&#xff1a; 原因&#xff1a; 解决&#xff1a; 方案2具体细节&#xff1a; 纯C服务端处理如下&#xff1a; Qt客户端处理如下&#xff1a; 前言&#xff1a; tcp协议里面&#xff0c;除了心跳检测是关于长连接操作的处理&#xff0c;这个在…

制做网站首先应该怎么做工商注册地址有什么要求

使用 UNIX 权限保护文件通过 UNIX 文件权限和 ACL 可保证文件安全。带 sticky 位的文件和可执行文件要求特殊的安全措施。用于查看和保证文件安全的命令下表介绍了用于监视以及保证文件和目录安全的命令。表 7-1 保证文件和目录安全的命令命令说明手册页ls列出目录中的文件及其…

做视频链接哪个网站没有广告南昌做网站公司

随着国家信息化建设的不断深入&#xff0c;信息技术创新&#xff08;信创&#xff09;已成为推动我国经济发展的重要动力。在这样一个大环境下&#xff0c;信创运维作为保障信创环境稳定、高效运行的关键环节&#xff0c;其重要性日益凸显。本文将探讨信创运维的发展背景、数字…

陕西 网站建设wordpress给代码高亮

单选题 1、电子邮件地址中一定会出现的字符&#xff08;&#xff09; A、- B、 C、&#xff01; D、# 答案&#xff1a;B 2、以下常见的电脑硬件中&#xff0c;&#xff08;&#xff09;不是一种输入设备 A、鼠标 B、键盘 C、触摸板 D、显示器 答案&#xff1a;D 3、…

嘉兴网站关键词沈阳网页设计兼职

Overview — OpenOFDM 1.0 documentation 本篇文章为学习OpenOFDM之后的产出PPT&#xff0c;仅供学习参考。

做的网站如何放在电脑上常见网站颜色搭配

1.全局变量[其不属于面向对象的思想&#xff0c;因为其放在对象之外的]&#xff0c;面向对象有一个特点&#xff0c;其实封装的&#xff0c;php希望其所有的成员都应该放在类中&#xff1b;php的面向对象是基于面向对象的&#xff0c;不是纯粹面向对象的&#xff1b;也就是其可…