摘要: 接口(interface)是抽象方法和静态常量定义的集合。接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。 为什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用“接口”;也就是说接口里面所有的方法必须都是声明为抽象方法,另外接口里面 阅读全文
posted @ 2018-07-23 15:56 周国伟 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 抽象类: 抽象类不能被实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以继承它并且通过实现其中的抽象方法,使抽象类具体化。 我们可以用一个abstract关键字来定义一个抽象类,示例如下: 抽象类的特性: 1)、定义为抽象的类不能被实例化。 抽象类和普通类一样,都可以创建方法和属性,那么抽 阅读全文
posted @ 2018-07-23 14:51 周国伟 阅读(880) 评论(0) 推荐(0) 编辑
摘要: MySQL优化三大方向: ① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。 ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。 ③ 对SQL语句以及表优化。 MySQL参数优化: 1、MySQL 默认的最大连接数为 100,可以在 mysql 客户端 阅读全文
posted @ 2018-07-12 11:44 周国伟 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。 首先,我们来 阅读全文
posted @ 2018-07-12 11:08 周国伟 阅读(5194) 评论(0) 推荐(0) 编辑
摘要: 一、Memcache简介 Memcache是danga.com的一个项目,最早是为LiveJournal服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以对应任意多个链接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTab 阅读全文
posted @ 2018-07-09 10:13 周国伟 阅读(5588) 评论(0) 推荐(0) 编辑
摘要: 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。 Trait其字面意思是”特性”、”特点”,我们可以理解为,使用Trait关键字,可以为PHP中的类添加新的特性。 Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制 阅读全文
posted @ 2018-07-06 16:21 周国伟 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 一、MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型。越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小。 简单就好:简单的数据类型的操作通常需要更少的CPU周期。例如:整型比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂。 阅读全文
posted @ 2018-07-05 17:14 周国伟 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 一、三大范式: 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导 阅读全文
posted @ 2018-07-05 15:57 周国伟 阅读(40193) 评论(0) 推荐(7) 编辑
摘要: 什么是负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。 我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务 阅读全文
posted @ 2018-07-05 14:38 周国伟 阅读(12137) 评论(1) 推荐(1) 编辑
摘要: 超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。 超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量。 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以 阅读全文
posted @ 2018-07-05 09:50 周国伟 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 概述 在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。 开始之前 在总结PHP的魔术方法之前先来定义两个类,以便后边示例使用: Device类有四个成员属性和两个成员方法。 阅读全文
posted @ 2018-07-04 14:50 周国伟 阅读(3494) 评论(0) 推荐(0) 编辑
摘要: (PHP 4, PHP 5, PHP 7) list — 把数组中的值赋给一组变量 array list ( mixed $var1 [, mixed $... ] ) 像 array() 一样,这不是真正的函数,而是语言结构。 list() 可以在单次操作内就为一组变量赋值。 Note: list 阅读全文
posted @ 2018-07-04 14:25 周国伟 阅读(2268) 评论(0) 推荐(0) 编辑
摘要: /** * 计算一年有多少周,每周从星期一开始, * 如果最后一天在周四后(包括周四)算完整的一周,否则不计入当年的最后一周 * 如果第一天在周四前(包括周四)算完整的一周,否则不计入当年的第一周 * @param int $year * return int */ function week($year){ $year_endday = mktime(0,0,0,12,31... 阅读全文
posted @ 2018-07-04 11:51 周国伟 阅读(1068) 评论(0) 推荐(0) 编辑
摘要: PHP单例模式,就是一个对象只被生成一次,但该对象可以被其它众多对象使用。单例模式使用最多的场景,是数据库连接操作。我们知道,生成一个对象的操作是用new函数来实现,但是new对象都会消耗内存,而且有时候对同一个对象,在不同文件中可能会生成多次,这就造成了系统资源的浪费。然而使用单例模式,则可以很好 阅读全文
posted @ 2018-07-04 11:31 周国伟 阅读(164) 评论(0) 推荐(0) 编辑
摘要: PHP工厂模式就是用一个工厂方法来替换掉直接new对象的操作。 在传统习惯中,如果要生成一个类的话,在代码中直接new一个对象,比如: 下面介绍工厂模式的操作方法: 那么,当我们想创建一个数据库类的话,就可以使用这样的方法: 简单工厂模式比直接new一个对象的好处是,比如Database这个类在很多 阅读全文
posted @ 2018-07-04 11:22 周国伟 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 什么是PHP命名空间? (PHP 5 >= 5.3.0, PHP 7) 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时 阅读全文
posted @ 2018-07-04 08:41 周国伟 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1、排除一些条件,必须两个条件都满足后才重定向到index.php//如果你访问的文件不等于目录 //如果你访问不是文件,比如你可能访问的JPEG等图片文件 2、^(.*)$ 匹配所有的路径映射到入口文件 index.php/$1 3、标签 [QSA,PT,L] QSA:表示保留参数如get传值?x 阅读全文
posted @ 2018-06-28 18:07 周国伟 阅读(1938) 评论(0) 推荐(0) 编辑
摘要: Mysql分表和表分区详解 为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通 阅读全文
posted @ 2016-05-04 11:27 周国伟 阅读(2794) 评论(0) 推荐(0) 编辑
摘要: 1.merge简介分表就是把N条记录的表,分成若干个分表,各个分表记录的总和仍为N。 分表的方法有很多,用merge来分表,是最简单的一种方式.merge是mysql的一种存储引擎,它把一组MyISAM数据表当做一个逻辑单元. CREATE TABLE`t` (`id`int(10) unsigne 阅读全文
posted @ 2016-05-03 13:35 周国伟 阅读(3681) 评论(0) 推荐(0) 编辑
摘要: #附:HTTP header 详解 Requests部分 Header解释示例Accept指定客户端能够接收的内容类型Accept: text/plain, text/htmlAccept-Charset浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5Accept-E 阅读全文
posted @ 2016-03-25 17:54 周国伟 阅读(3169) 评论(0) 推荐(0) 编辑