归档: 2019

PHP 中间件的简单实现

定义四个中间件: 123456789101112131415$app = function () { echo 'app';};$m1 = function () { echo "m1\n";};$m2 = function () { echo "m2\n";};$m3 = function () { e

PHP 的严格模式与非严格模式整理

非严格模式PHP 7.0 增加标量类型声明,我的测试版本是 PHP 7.1.16。 非严格模式下,标量 int、float、string、bool 的类型声明,会做类型转换,例如参数声明为 int 型,但是传入的是 float 或 string 类型,则参数会转换为 int 型。此转换同样适用于函数返回值。 123456789101112<?phpfunction test1(string

我的 Sublime Text 3 常用插件

前言操作系统:macOS High Sierra Sublime Text 版本:Version 3.2.1, Build 3207 本文只列出插件名称以及 GitHub 仓库地址,具体使用教程可以跳转到 GitHub 查看。 Package ControlPackage Control 是 Sublime Text 的插件管理工具,查看官网的安装教程进行安装。安装之后,使用 cmd + shif

Mac 安装 Consolas 字体

我无论是 Sublime Text 3、PhpStorm、Goland 还是印象笔记,都会将 Consolas 设置成默认字体,Mac 上没有预装 Consolas 字体,不过可以手动安装。安装方法可以点击这里查看。 当微软的 PowerPointViewer.exe 下载超时时,可以尝试使用下面的地址: 1curl -LO https://sourceforge.net/projects/msc

记一次 MySQL 死锁解决过程

代码中要执行一个 SQL 语句,去更新表数据,这个 SQL 并没有在一个事务中,但是每次都会报错:Lock wait timeout exceeded; try restarting transaction。由于这个更新语句不在事务中,所以我怀疑要更新的表因为某些原因一直是被锁住的状态。 后来找到了这篇博客,使用 SELECT * FROM information_schema.INNODB_TR

解决 yaml_parse_file 函数解析空文件报错的问题

yaml_parse_file 函数用于解析一个 YAML 文件,根据 PHP 官方文档中对于这个函数返回值的描述,函数在失败时会返回 false。 但是我在解析一个空文件时,直接报错了: 1PHP Warning: yaml_parse_file(): end of stream reached without finding document 0 in php shell code on li