• PHP回顾--插入排序(包含希尔排序)
  • 一、定义插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,是一种稳定的排序方法。希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序效果图上面解释来源于百度百科。先抛出个结论:你可以将希尔排序理解为 预排序的插入排序,后面会解释两者具体的关系。二、排序演示1、插...
  •  2019-03-01  |    程成  |    37  |    0  |    PHP  |   PHP  排序  插入  希尔  
  • PHP回顾--快速排序
  • 一、定义基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。通俗说就是数组中找出一个随机数(一般拿数组第一个数),把它插入一个位置,让它左边的数都比它小,右边的数都比它大,这样就将一个数组分成了两个字数组。然后再根据同样的方法递归,直到不能分解为止,这个时候数组就已经排好序了。二、排序演示下面演示了用第一个数字12将数组分成了两个数组。下...
  •  2019-03-01  |    程成  |    40  |    1  |    PHP  |   PHP  排序  快速  
  • PHP回顾--冒泡排序
  • 一、定义冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法,冒泡排序是稳定排序。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。效果图二、原理冒泡排序算法的原理如下:比...
  •  2019-02-26  |    程成  |    35  |    0  |    PHP  |   PHP  排序  冒泡  
  • 实例测试 PHP 对象的遍历
  • 对象的遍历,跟数组的遍历,一样!其实,只能遍历出对象的 “实例属性数据”。 foreach( $对象名  as   $key => $value){//这里就可以处理$key和$value//但注意:1,  $key表示的是对象 的 “属性”,$value是其对应值;2,  这里能够遍历出来的属性,只能是在该范围中的“可访问属性”(就是要考虑访问控制权限)}实例一:class A{     ...
  •  2019-02-26  |    程成  |    42  |    0  |    PHP  |   PHP  遍历  对象  实例  
  • 什么是 ORM,以及在 PHP 上的使用
  • 百度百科:对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1]  。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数...
  •  2019-02-26  |    程成  |    57  |    0  |    PHP  |   ORM  PHP  SQL  数据库  
  • PHP 判断是安卓还是ios设备
  • 下面方法中 get_device_type() 就是返回设备信息,是安卓还是IOS。这个代码是判断请求来自电脑还是手机,如果是手机的话是安卓还是IOS。<?php if(!isMobile()){     echo '请使用手机打开'; }else{     $type = get_device_type();    &nbs...
  •  2019-02-22  |    程成  |    60  |    0  |    PHP  |   PHP  安卓  Android  IOS  
  • PHP解决高并发问题
  • 首先,这篇文章不是我写的。选自于网上,我是觉得写的很不错。虽然我想标明出自哪里,但是网上很多这一个版本的文章,都标明原创。我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。 那么,我们的Web系统的理论峰值QPS为...
  •  2019-02-18  |    程成  |    87  |    0  |    PHP  |   PHP  高并发  秒杀  
  • PHP 中 empty(),isset(),is_null() 使用区别
  • 开发 PHP 也有几年了,突然发现 empty(),isset(),is_null() 也不是那么明白。虽然之前查过使用区别,但是经常会忘记。。这次结合实例测试,记忆应该会深刻点。测试代码如下:$a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); 一、empty() 实例测试var_dump...
  •  2019-02-14  |    程成  |    64  |    0  |    PHP  |   PHP  empty  isset  is_null  
  • composer基本用法
  • 安装安装 Composer,你只需要下载 composer.phar 可执行文件。curl -sS https://getcomposer.org/installer | php要检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表。注意: 你也可以仅执行 --check 选项而无需下载 Composer。 要获取更多的信息请使用 --help。curl&n...
  •  2019-02-13  |    程成  |    51  |    0  |    PHP  |   composer  php  用法  
  • PHP对象之深复制、浅复制理解
  • 先说一下深拷贝和浅拷贝通俗理解深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会影响另一个浅拷贝:赋值时,引用赋值,相当于取了一个别名。对其中一个修改,会影响另一个PHP中, = 赋值时,普通对象是深拷贝,但对对象来说,是浅拷贝。也就是说,对象的赋值是引用赋值。(对象作为参数传递时,也是引用传递,无论函数定义时参数前面是否有&符号) php4中,对象的 = 赋值是实现一份副本,这样存在很多问题,在不知不觉中我们可能会拷贝很多份副本。php5中,对象的 = 赋值和...
  •  2019-02-11  |    程成  |    52  |    0  |    PHP  |   PHP  浅复制  深复制  对象  
  • PHP中 json_encode 和 serialize 区别
  • (1)serialize主要用于php的序列化,存储到文件或者数据库中,json_encode 也是序列化,但是 主要用于与其他语言比如js进行交互使用,对于传输来说,json有许多优点。(2)在显示上,serialize序列化的字符串包含额外的内容,这是值的类型和长度的编码(3)在进行 json_decode解码的时候需要注意,如果是序列化的数值型数组,那么json_decode 可以还原为原来的数组(数值型数组哦),但是,如果序列化的是关联数组(或者对象),那么由于json_decode无法...
  •  2019-02-11  |    程成  |    67  |    0  |    PHP  |   php  json  serialize  序列化