![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
php
php
<?php?>
改变世界前,先改变自己!
展开
-
PHP实例之表单安全验证
这篇文章主要介绍了php token使用与验证方法,通过对form表单hidden提交字段的处理实现token验证功能,防止非法来源数据的访问一、token功能简述PHP 使用token验证可有效的防止非法来源数据提交访问,增加数据操作的安全性二、实现方法:前台form表单:<form action="do.php" method="POST"><?php $modu...原创 2019-05-03 22:57:11 · 1284 阅读 · 0 评论 -
依赖注入
作用依赖注入主要用来减少代码之间的耦合有效分离对象和它所需的外部资源PHP中传递依赖的三种方案第一种方案,也是最不可取的方案,就是在A类中直接用new关键词来创建一个B类,如下代码所示:<?phpclass A{ public function __construct() { $b = new B(); }}为什么这种方案不可取呢?因为这样的话,A与B就耦合在了一起,也就是说A类无法脱离B类工作。第二种方案就是在A类的方法中传入需要的B类,如下代码所示:转载 2020-06-09 00:02:30 · 105 阅读 · 0 评论 -
注册树模式
什么是注册树模式通过将对象实例注册到一颗全局的对象树上需要的时候从对象树上采摘下来使用为什么要用注册树模式单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。 那么注册树模式想解决什么问题呢? 在考虑这个问题前,我们还是有必要考虑下前两种模式目前面临的局限。 首先,单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在。存在则返回对象,不存在则创建对象并返回。 每次创建实例对象都要存在这么一层判断。 工厂模式更多考虑的是扩展维护的转载 2020-06-08 13:46:37 · 139 阅读 · 0 评论 -
new self()和new static()的区别
new static()是在PHP5.3版本中引入的新特性。无论是new static()还是new self(),都是new了一个新的对象。这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢?为了探究上面的问题,我们先上一段简单的代码:class Father { public function getNewFather() { return new self(); } public fun..转载 2020-06-08 12:09:51 · 272 阅读 · 0 评论 -
单例模式(一个类只允许创建一个实例)
目录一、什么是单例模式二、PHP单例模式三要素三、为什么使用单例模式四、单例模式示例一、什么是单例模式作为对象的创建模式,单例模式确保某一个类只有一个实例,并且对外提供这个全局实例的访问入口。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。二、PHP单例模式三要素需要一个保存类的唯一实例的静态成员变量。构造函数和克隆函数必须声明为私有的,防止外部程序创建或复制实例副本。必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。三、为什么使用单例模式使用单例模式的好转载 2020-06-08 12:02:47 · 800 阅读 · 0 评论 -
PHP7.2关联Apache2.4
1、去php官网下载对应的php版本包2、解压,修改如下一个文件为php.ini3、打开Apache配置文件httpd.conf4、添加如下代码5、重启Apache原创 2020-05-28 13:04:41 · 541 阅读 · 0 评论 -
PHP基础之文件的上传与下载
目录文件上传概述原理上传准备前端后端文件上传概述1、客户端文件通过HTTP协议复制到远程服务器2、客户端的一切文件均可上传原理前端通过html表单控件将文件通过http协议复制到服务器临时目录中,服务端接收并将文件从临时目录转移到指定目录。上传准备前端1、表单设置属性enctype=“multipart/form-data”,表示不对数据进行编码2、前端限制提交文件大小,val...原创 2020-05-13 22:37:12 · 259 阅读 · 0 评论 -
PHP基础之预处理(MySQLi扩展)
什么是预处理传统的做法:php在执行SQL语句时,将用户发送的数据和SQL写在一起,这种方式每条SQL语句都需要经过分析、编译和优化周期预处理的做法:事先编译一次用户提交的SQL模板,在操作时,发送相关的数据即可完成更新操作。使用预处理的优点:第一可以提高运行的效率(只编译一次);第二预处理的方式更加安全,无需考虑数据中包含的特殊符号(如单引号)导致的语法问题,可防止SQL注入等。预处理的...原创 2019-08-20 15:45:20 · 731 阅读 · 0 评论 -
PHP基础之数组函数
目录数组类别常用函数数组与字符串数组类别根据键的类型分:索引数组:键名为整数的数组,默认从0开始并依次递增关联数组:键名为字符串的数组,‘键’和‘值’相对应。通常用来存储具有逻辑关系的变量。根据键的维度分:一维数组、二维数组、三维数组、…常用函数指针操作函数函数名作用current()当前指针指向的元素值key()当前指针指向的元素键next()...原创 2020-04-29 21:18:24 · 192 阅读 · 0 评论 -
PHP基础之Session技术
session简介Session在网络应用中称为“会话”,在PHP中用于保存用户连续访问web应用时的相关数据,有助于创建高度定制化的程序、增加站点的吸引力。Session通常用于保护用户的登录状态、保存生成的验证码等。故Session在web技术中占有非常重要的地位。Session是一种服务器端的技术,它的生命周期从用户访问页面开始,直到断开与网络的连接时结束。当PHP启动Session时,...原创 2019-08-22 23:58:47 · 291 阅读 · 0 评论 -
PHP基础之类常量与静态成员
类在实例化后,对象中的成员只被当前对象所有。如果希望在类中定义的成员被所有对象共享,此时可以使用类常量或静态成员来实现。原创 2019-08-24 00:21:55 · 660 阅读 · 0 评论 -
PHP基础之抽象类与接口
在项目开发中,经常需要定义方法来描述类的一些行为特征,但是这些行为特征在不同的情况下又有不同的特点。因此,对于这种在程序中无法确定的情况,可以利用PHP提供的抽象类和接口,提高程序的灵活性。原创 2019-08-23 22:57:18 · 169 阅读 · 0 评论 -
PHP基础之strcmp和strncmp
strcmp函数该函数用于比较两个字符串,是二进制安全的,且区分大小写strcmp(str1,str2)str1==str2 返回0str1>str2 返回1str1<str2 返回-1注意:比较时计算了两个字符串相差(不同)字符的个数一起作为返回如:$str1 = "abcd";$str2 = "abcdefgh";echo strcmp($str1...原创 2019-08-08 22:33:10 · 174 阅读 · 0 评论 -
PHP基础之empty和isset
empty函数作用:用于检查一个变量是否为空以下变量会被认为是空:"" (空字符串)0 (作为整数的0)0.0 (作为浮点数的0)"0" (作为字符串的0)NULLFALSEarray() (一个空数组)$var; (一个声明了,但是没有值的变量)总之,FALSE,false,0,null,空数组,或者没有属性的对象都是假isset函数作用:用于检测变量是否已设置并且非...原创 2019-08-08 22:15:05 · 78 阅读 · 0 评论 -
PHP基础之引用变量
引用基本概念:用不同的名字访问同一个变量的内容,用符号&表示php的cow机制:英文名称copy by write,意思是只有进行修改操作才会copy1、变量直接赋值的情况<?php//定义a$a = range(0,3);var_dump(memory_get_usage());//查看内存使用情况xdebug_debug_zval('a');//引用$b =...原创 2019-07-21 21:28:05 · 252 阅读 · 0 评论