Go! PHP中new self()和new static()的区别探究 1.new static()是在PHP5.3版本中引入的新特性。2.无论是new static()还是new self(),都是new了一个新的对象。3.这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢?为了探究上面的问题,我们先上一段简单的代码:class Father { public function getNewFather() { &n... PHP中什么是依赖注入 把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。实例:Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。这样做有什么好处呢?解释:假如现在有N多个类,需要用到Class B,那就需要在类里面实例化N多次,这样对于后期的维护和管理都是不方便的,如果后期... PHP 正则匹配校验身份证号码 下面方法会校验15位身份证和18位身份证号码,并且还会校验生日,校验号码顺序是否合规。附上代码(复杂版):/** * function: checkIDNum * author: cc * date: 2019/5/7 9:51 ... Laravel 中 withCount() 建立一对一、一对多关系 withCount 是 Laravel5.3 及其以后版本才有,5.2及其以下会报错:方法未定义。比如:我有一张学生表,一张课程表,一张班主任表。一个学生对应了一个班主任,一个学生对应了多个课程。我想通过学生表,用 withCount 连接两张表,计算出该学生的课程数量和班主任数量。原料:准备好三张表的模型代码文件。建立学生与课程老师的关联关系,且方法名和 withCount 里面名字一样。举例:学生模型 Student.php 模型中定义方法,与课程建立一对多关系 &nb... 示例详解 Laravel 如何使用定时任务和定时函数 首先进入你的 Laravel 项目目录然后创建一个 Hello.php 测试任务php artisan make:command Test创建成功如下你的 【app】 - 【Console】 - 【Commands】多了个 Test.php 定时脚本<?php namespace App\Console\Commands; use Illuminate\Console\Command; class Test ext... 服务器 PHP 端实现极光推送 JPush 提供四种消息形式:通知,自定义消息,富媒体和本地通知。通知 或者说 Push Notification,即指在手机的通知栏(状态栏)上会显示的一条通知信息。 通知主要用来达到提示用户的目的,应用于新闻内容、促销活动、产品信息、版本更新提醒、订单状态提醒等多种场景。下面我们所讨论的都是 “通知” 形式。PHP端实现极光通知代码如下: //初始化 JpushClient ... 阿里云ECS如何用宝塔安装 Laravel 环境 软件配置:操作系统:Centos 7+Nginx1.8 + PHP7.2 + RDS一、材料准备(1)域名备案,解析(2)ssl证书绑定域名,登陆阿里云SSL证书管理控制台绑定并验证域名,并下载 nginx 类型留备用二、挂载数据盘注:如果你只有一个系统盘,这个步骤可以忽略。挂载目录 /www1、运行 fdisk -u /dev/vdb:分区数据盘。2、输入 p:查看数据盘的分区情况。本示例中,数据盘没有分区。3、输入 n:创建一个新分区... 为啥要使用 migrate 迁移数据库,以及 PHP 中如何使用 migrate 网上有很多教程,教你如何使用 migrate。但是我们为什么要使用 migrate,我们要知其所以然。一、我们为什么要使用 migrate我们在开发过程中,使用到了很多的版本控制器,比如git,svn,cvs 等等,代码统一性得到了很好的保证。但是在多人开发中,我们的数据库却往往出一些问题,少一个字段,线上线下数据库不统一,我的数据库被别人覆盖了... 最关键的是还没有操作日志,也没有修改数据库的时间... 所以 migrate 就解决了这些问题。migrate 可以让开发者简洁的修改和维护数据... PHPExcel 解决 Uninitialized string offset: 1 报错问题 使用 PHPExcel 导出 excel 时,报了一个错:Uninitialized string offset: 1 。检查了代码,定位到是用户名称出了问题。猜测是数据问题,不是代码问题。解决方法:修改 utf8 到 uf8mb4 不管用,不是 emoji 表情类问题。检查数据库数据,发现有个数据是 “= =”,目测是这个引起的。证实确实是这个符号引起的,估计是 PHPExcel 没有过滤这种关键字。/***添加一个空格,防止出现=开头,phpexcel会出现问题***/ $sheet-&g... PHP 中 CURL 参数说明 curl_setopt PHP中CURL方法curl_setopt()函数的一些参数 。bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。例如:CURLOPT_RETURNTRANSFER 选项:curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);如果成功获取的信息以文件流的形式返回,而不是直接输出。如果失败返... PHP 使用 CURL 模拟发送 GET/POST/PUT/DELETE 请求 经常用到,用到的时候发现没记录过,记录一下,自测可用。注:有关 curl_setopt 参数有哪些和如何使用,可以点击这里。/** * @param $url 需要请求的URL * @param $method&nbs... PHP回顾--堆排序 一、定义堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。二、排序演示给定一个列表array=[16,7,3,20,17,8],对其进行堆排序。首先根据该数组元素构建一个完全二叉树,得到然后需要构造初始堆,则从最后一个非叶节点开始调整,调整过程如下:第一步: 初始化大顶堆(从最后一个有子节点开始往上调整最大堆)20和16交换后导致16不满足堆的性质,因此需重新调整这样... PHP回顾--归并排序 一、定义归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二、排序演示归并操作归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。如 设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1... PHP回顾--选择排序 一、定义选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。二、排序演示三、性能分析时间复杂度选择排序的交换操作介于 0 和 (n - 1) 次之间。选择排序的比较操作为 n (n - 1) / 2 次之间。选择排序的赋值操作介于 0 和 3 (n... PHP 二维数组根据其中某个键(key)排序,解决 array_multisort(): Array sizes are inconsistent 我有一个二维数组,我想根据其中的某个键(key)进行升降序排序。可以使用下面的 PHP 语句。其中 $data 是二维数组,根据 chapter_rate 字段升序排序。$data = array( array( 'id' => 1, &n... 姓名:程成
建站日期:2017-01-20
文章数量:273
访问量:507950