摘要: 记录一次因为对PHP作用域理解不够导致的小坑。 自测需求的时候发现有一块地方数据很奇怪,要么该写的没有写入、要么数据被写入双份。剥离业务后的代码大概如下: 我预想中 上面的代码应该是只打印arr里的第一条记录,也就是 ,然而实际运行发现打印的是这样的: 居然打印了两条记录,而且两条的k都是1。 断点 阅读全文
posted @ 2019-08-17 13:58 clannadxr 阅读(901) 评论(0) 推荐(0) 编辑
摘要: mongodb利用索引对find结果排序(sort) 最近线上有个接口超时报警,排查发现是查询MongoDB的时候比较慢(平均耗时1s以上)。文档结构很简单: 已有索引: 接口里的查询转换成查询语句为: 数据量100W+,不小,但是对MongoDB来说应该也不算大。 想当然的觉得:已经有cid索引, 阅读全文
posted @ 2019-08-14 14:56 clannadxr 阅读(10953) 评论(0) 推荐(0) 编辑
摘要: https://shreevatsa.wordpress.com/2008/03/30/zshbash startup files loading order bashrc zshrc etc/ linux系统里有各种启动加载文件: 、`.bash_profile .bash_login .prof 阅读全文
posted @ 2019-08-14 14:32 clannadxr 阅读(1631) 评论(0) 推荐(0) 编辑
摘要: 机器上没有装composer的时候,可以用docker来运行:docker run 如何在任何目录下都能运行呢,bash是可以定义function的: 1. 在主机创建一个目录,用以保存composer的配置和缓存文件: 2. 打开主机的 或者 文件,加上: 3. 让文件起效: 4. 在主机的任何目 阅读全文
posted @ 2019-08-07 14:18 clannadxr 阅读(4273) 评论(0) 推荐(0) 编辑
摘要: 事情是这样的,有一段json,里面有字段本应该是obj,但是encode的时候被当成string在,就成了这个样子: 用 来解析的话,显然要映射到这样的struct里: go rawStr := ` {"body":"{\"sn\":\"aaaa\\\/bbbb\"}"} ` data := str 阅读全文
posted @ 2019-08-07 14:00 clannadxr 阅读(6357) 评论(1) 推荐(1) 编辑
摘要: MySQL基础 MySQL数据类型 整数类型 TINYINT、 SMALLINT、 MEDIUMINT、 INT、 BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,例如:INT(11)、对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数。 int(3) 可以 阅读全文
posted @ 2017-11-08 21:16 clannadxr 阅读(742) 评论(0) 推荐(0) 编辑
摘要: HTTP状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。 HTTP状态码主要有5种,代表5种不同类型的响应: 1. 1xx:信息性状态码,代表接收到请求,正在处理 2. 2xx:成功状态码,代表请求正常处理完毕 1. 200 OK 表示从 阅读全文
posted @ 2017-11-01 21:48 clannadxr 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 面向对象三大特性 封装 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 1. 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。 2. 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限 阅读全文
posted @ 2017-10-30 10:42 clannadxr 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用会话控制技术 HTTP协议是无状态的,也就是说HTTP没有一个内建的机制来维护两个事务之间的状态。当一个用户完成一个请求发起第二个请求的时候,服务器无法知道这次请求是来自于上一次的客户。而用户登录、购物车等,这些是需要服务器能够保存用户的状态的。会话技术就是用来完成这件事的。其思想是允许 阅读全文
posted @ 2017-10-24 14:21 clannadxr 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 文件读取/写入操作 "fopen()函数" 用来打开一个文件,打开时需要指定打开模式 打开模式 模式 |作用 | 'r' |只读方式打开,将文件指针指向文件头。 'r+' |读写方式打开,将文件指针指向文件头。 'w' |写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 阅读全文
posted @ 2017-10-23 12:06 clannadxr 阅读(185) 评论(0) 推荐(0) 编辑