<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JathamJ的博客]]></title><description><![CDATA[PHP程序猿一头~新开博将随时更新本人工作当中用到的，见到的知识，闲暇时，也会总结过去工作经验所得。欢迎各路大神前来交流~]]></description><link>https://blog.youkuaiyun.com/JathamJ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JathamJ]]></copyright><item><title><![CDATA[浅谈PSR规范与PHP框架中类的自动加载原理]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/78020936</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/78020936</guid><author>JathamJ</author><pubDate>Mon, 18 Sep 2017 16:46:48 +0800</pubDate><description><![CDATA[浅谈PSR规范与PHP框架中类的自动加载原理在PHP中，如果要实例化的类不在当前文件中，那么需要require引入类所在的文件。但在项目编程中，频繁因此引入文件十分影响开发效率，因此诞生了PHP类自动加载方法。__autoload()函数（不推荐）__autoload是早期的自动加载方法，用户可以重新定义这个方法。在文件中调用一个不存在的类会在报错前自动调用此方法，用户可以在方法内定义自动加载逻辑。]]></description><category></category></item><item><title><![CDATA[PHP 的正则相关函数总结]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/74002523</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/74002523</guid><author>JathamJ</author><pubDate>Mon, 10 Jul 2017 14:39:12 +0800</pubDate><description><![CDATA[正则程序员基本都会用到，但是用的都不多，本文总结、比较 PHP 常用的正则函数：

1. preg_match 和 preg_match_all

preg_match 与 preg_match_all 都是用来匹配正则表达式。

主要参数有三个：preg_match_all ( string patt,stringpatt ,  string str , array $matches);

$p]]></description><category></category></item><item><title><![CDATA[PHP 利用函数的静态变量 指定迭代次数]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/73230724</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/73230724</guid><author>JathamJ</author><pubDate>Mon, 19 Jun 2017 10:02:30 +0800</pubDate><description><![CDATA[在PHP中，除了类的静态成员属性外，在函数中同样可以利用 static 定义静态变量。从而便捷的完成函数迭代。



例1：


function Test()
{
    $a = 0;
    echo $a;
    $a++;
}
?> 

在上例中，每次调用Test函数，a都被重新赋值为0，因为一旦退出本函数则变量a都被重新赋值为0，因为一旦退出本函数则变量 a 就不存在了。要想完成迭代]]></description><category></category></item><item><title><![CDATA[从底层原理深入理解 PHP 的引用 “&”]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/73189194</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/73189194</guid><author>JathamJ</author><pubDate>Tue, 13 Jun 2017 22:20:18 +0800</pubDate><description><![CDATA[在PHP中使用引用符（&）可以提高程序运行效率，并且更加节约内存空间。但是在不理解引用原理的时候滥用引用符是极其危险的，往往会造成意料之外的错误。



1.变量的底层存储结构zval

PHP运行核心是Zend引擎，用纯C语言实现，是PHP的内核部分，它将PHP代码翻译（词法、语法解析等一系列编译过程）为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构（如hashtable、o]]></description><category></category></item><item><title><![CDATA[MySQL 对一段时间内每天数据统计案例--sql优化]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/70261364</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/70261364</guid><author>JathamJ</author><pubDate>Thu, 20 Apr 2017 15:34:56 +0800</pubDate><description><![CDATA[在互联网项目中，对项目的数据分析必不可少。通常会统计某一段时间内每天数据总计变化趋势调整营销策略。下面来看以下案例。案例在电商平台中通常会有订单表，记录所有订单信息。现在我们需要统计某个月份每天订单数及销售金额数据从而绘制出如下统计图，进行数据分析。订单表数据结构如下：
  order_id
  order_sn
  total_price
  enterdate  25396
  A4E610E2]]></description><category></category></item><item><title><![CDATA[MySQL 聚簇索引 和 非聚簇索引]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53930808</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53930808</guid><author>JathamJ</author><pubDate>Thu, 16 Mar 2017 09:24:06 +0800</pubDate><description><![CDATA[非聚簇索引

索引节点的叶子页面就好比一片叶子。叶子头便是索引键值。

先创建一张表：



CREATE TABLE `user` ( 
`id` INT NOT NULL ,
`name` VARCHAR NOT NULL ,
`class` VARCHAR NOT NULL);

对于MYISAM引擎，如果创建]]></description><category></category></item><item><title><![CDATA[PHP后端利用七牛快速搭建个人网站图床]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/58586982</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/58586982</guid><author>JathamJ</author><pubDate>Tue, 28 Feb 2017 10:26:59 +0800</pubDate><description><![CDATA[七牛云是国内领先的企业级公有云服务商，它所提供免费的对象存储服务。访问速度稳定，适宜中小型项目的个人网站利用搭建网站图床，从而节省服务器空间。本文将对官方phpsdk使用、扩展，搭建自己网站的图床安装七牛phpsdk安装非常便捷。可以通过composer安装，也可直接下载源码包拷入项目。具体参考：https://developer.qiniu.com/kodo/sdk/php创建存储空间1.注册账号]]></description><category></category></item><item><title><![CDATA[chosen.jquery.js 搜索框只能从头匹配的解决思路+方法]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/55001092</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/55001092</guid><author>JathamJ</author><pubDate>Sun, 12 Feb 2017 13:44:38 +0800</pubDate><description><![CDATA[心急者请直接看下方 总结 ,由于本问题未能找到直接答案，所以只能通过修改源码解决。故将修改源码思路贴出来供大家参考，在遇到其他改源码问题时应如何思考。 chosen.jquery.js（地址：http://harvesthq.github.io/chosen）是一款非常优秀的表单select框美化插件。它提供了一些非常实用的功能。但是在实用中却又有一些问题。搜索从头匹配问题首先，我们初始化一个cho]]></description><category></category></item><item><title><![CDATA[B-tree 索引提高 MySQL 查询效率的原理]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53929901</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53929901</guid><author>JathamJ</author><pubDate>Mon, 09 Jan 2017 09:20:21 +0800</pubDate><description><![CDATA[在MySQL中，我们常用的存储引擎  InnoDB 和 MyISAM 的索引都是B-Tree 索引。大家都知道，建立索引的目的便是优化慢查询，那么慢查询究竟慢在哪里呢？

查询时间

一个sql查询的时间分为 等待时间 和执行时间。

等待时间，即sql执行之前所等待的时间。对于mysql数据库来说，在执行某些操作时，InnoDB会锁行，MyISAM会锁表。当即将开始一个新查询时，如果查询所操作的]]></description><category></category></item><item><title><![CDATA[MySQL 使用explain分析sql语句的查询效率（二）]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53926855</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53926855</guid><author>JathamJ</author><pubDate>Tue, 03 Jan 2017 15:45:19 +0800</pubDate><description><![CDATA[本文将继续上文讲解其他与效率相关的参数



explain所返回的其他参数key为使用的索引，而使用的索引又影响着连接类型type，它们共同决定了可能扫描行数rows

参数解析

（4）type （重点）

联接类型。查询效率的关键，下面按照从最佳类型到最坏类型进行排序

1.system 存在于手册中（没怎么见过），最好的连接类型，是const联接类型的一个特例。

2.const 表最多有]]></description><category></category></item><item><title><![CDATA[MySQL 使用explain分析sql语句的查询效率（一）]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53909614</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53909614</guid><author>JathamJ</author><pubDate>Wed, 28 Dec 2016 16:24:47 +0800</pubDate><description><![CDATA[mysql explain用于分析sql 语句的执行及数据库索引的使用。本文将致力于帮助大家充分理解explain所返回的各项参数，从而使大家快速掌握explain用法技巧。如果你在看其他教程或视频后仍觉得云里雾里。那么请通读本文。用法explain的用法相当简洁，直接在sql语句前加上EXPLAIN 即可，例如：EXPLAIN
select * FROM ec_stores_info where]]></description><category></category></item><item><title><![CDATA[PHP7革新与性能优化]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53113239</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53113239</guid><author>JathamJ</author><pubDate>Thu, 10 Nov 2016 10:32:22 +0800</pubDate><description><![CDATA[转自网易博客技术行者博文地址：http://hansionxu.blog.163.com/blog/static/24169810920158704014772/有幸参与2015年的PHP技术峰会（PHPCON），听了鸟哥（惠新宸）的关于PHP7的新特性和性能优化的分享，一切都令人感到激动。鸟哥是国内最权威的PHP专家，他的分享有很多非常有价值的东西，我通过整理分享的PPT和收集相关资料，整理为这篇]]></description><category></category></item><item><title><![CDATA[PHP命名空间 namespace 及导入 use 的用法]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/53102947</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/53102947</guid><author>JathamJ</author><pubDate>Wed, 09 Nov 2016 17:58:50 +0800</pubDate><description><![CDATA[在PHP中，出现同名函数或是同名类是不被允许的。为防止编程人员在项目中定义的类名或函数名出现重复冲突，在PHP5.3中引入了命名空间这一概念。1.命名空间，即将代码划分成不同空间，不同空间的类名相互独立，互不冲突。一个php文件中可以存在多个命名空间，第一个命名空间前不能有任何代码。内容空间声明后的代码便属于这个命名空间，例如：<?php
    echo 111;       //由于namesp]]></description><category></category></item><item><title><![CDATA[[新手必读] MySql语句大全：创建、授权、查询、修改等]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52956530</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52956530</guid><author>JathamJ</author><pubDate>Fri, 28 Oct 2016 15:10:57 +0800</pubDate><description><![CDATA[非常好的一篇MySQL基础操作的总结，新手必读~感谢   林炳文Evankaka 的分享~ 
出处：http://blog.youkuaiyun.com/evankaka 
一、用户创建、权限、删除1、连接MySQL操作连接：mysql -h 主机地址 -u 用户名 －p 用户密码 （注:u与root可以不用加空格，其它也一样）断开：exit （回车） 打开cmd,输入mysql -h 127.0.0.1 -u]]></description><category></category></item><item><title><![CDATA[高德地图 JavaScript API v1.3 开发（多点标记、自定义坐标点、信息窗口、导航）（demo）]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52956299</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52956299</guid><author>JathamJ</author><pubDate>Fri, 28 Oct 2016 14:50:48 +0800</pubDate><description><![CDATA[高德地图的web开发必须先到开发者专区注册开发者，申请到一个key值，才可以引入。

下面贴出本人自己写的demo：

HTML页面：



div id="container" style="width:100%;height:100%">div>

script代码:



var map = new AMap.Map('container', {

        });
    map.p]]></description><category></category></item><item><title><![CDATA[关于百度EChart 与dataTables 之间交互问题的解决方案（利用js全局变量）]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52954397</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52954397</guid><author>JathamJ</author><pubDate>Fri, 28 Oct 2016 11:00:24 +0800</pubDate><description><![CDATA[在后台数据统计，同时利用ECharts生成统计图，以及dataTables统计数据列表。有时便会需要进行图表之间的交互，从而带给用户更加直观的数据体验。如下图需求：



先由ECharts生成本月每天销售数据统计图，然后达到单击统计图每日柱形时，呼出左下角当天各店铺销售统计的dataTables表。

点击另外一天直接切换到另一天的数据表。但是，由于dataTables在同一dom创建dataT]]></description><category></category></item><item><title><![CDATA[PHP的底层运行机制与原理]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52947582</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52947582</guid><author>JathamJ</author><pubDate>Thu, 27 Oct 2016 17:05:06 +0800</pubDate><description><![CDATA[虽然在变量实现等方面在PHP7中已经有了变化，但这仍不失为一篇优秀的php原理的好文章。阅读本文章之前，希望您已经具备了一定的数据结构与算法知识。本文具体源头已不可考，请原谅本人贸然转载。说到php的运行机制还要先给大家介绍php的模块，PHP总共有三个模块：内核、Zend引擎、以及扩展层；PHP内核用来处理请求、文件流、错误处理等相关操作；Zend引擎（ZE）用以将源文件转换成机器语言，然后在虚拟]]></description><category></category></item><item><title><![CDATA[ThinkPHP 鲜为人知的 selectAdd 方法 addAll( select() )]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52925593</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52925593</guid><author>JathamJ</author><pubDate>Tue, 25 Oct 2016 18:01:58 +0800</pubDate><description><![CDATA[TP算是国内相当热门的一个PHP框架，相信大家对TP的普通增删查改所用的select(),add(),save(),delect(),find(),getField()等等内置函数早已烂熟于心了。 
今天，就向大家介绍一种TP手册中未提及，但却一直存在于源码当中的 SelectAdd()方法(3.1,3.2均支持)。这是本人在阅读TP源码的时候的偶然发现，前几天刚好碰到一个用得着的业务逻辑，便尝试]]></description><category></category></item><item><title><![CDATA[jQuery DataTables大数据异步二次加载渲染及initComplete事件bug]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52924537</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52924537</guid><author>JathamJ</author><pubDate>Tue, 25 Oct 2016 17:10:21 +0800</pubDate><description><![CDATA[我们在使用dataTables进行数据统计时，不可避免的会碰到对大数据的统计。当进行服务器端大数据读取时，毫无疑问的会占用大量加载时间，拖慢页面加载速度。为优化页面加载速度问题，我们便要在将请求中最耗时的部分在页面加载完成之后，进行二次加载，渲染入数据。之前我采用的是重新发起dataTables渲染事件，来进行二次加载。如下：<script type="javascript/text">
var d]]></description><category></category></item><item><title><![CDATA[百度ECharts 3.0 多坐标轴统计图一般配置详解（实例）]]></title><link>https://blog.youkuaiyun.com/JathamJ/article/details/52729210</link><guid>https://blog.youkuaiyun.com/JathamJ/article/details/52729210</guid><author>JathamJ</author><pubDate>Mon, 03 Oct 2016 19:58:16 +0800</pubDate><description><![CDATA[ECharts 是百度出品的jquery图表插件。相对于Chartist，拥有更加强大的功能，以及更加详细的文档（ECharts的文档形式非常优秀，简明易懂）。ECharts支持的图表种类非常多，同时兼容性也十分优良，故而在网站建设动态统计图表时，是一个非常优秀的选择。配置首先，配置echart首先需要在前台模板建立一个div容器，同时必须给容器指定一个宽度或高度，因而在响应式页面中发挥并不出色。<]]></description><category></category></item></channel></rss>