Lua 数据类型概览 速查

Lua 共 8 种数据类型:nil、boolean、number、string、table、function、userdata、thread。用 type() 取类型名;只有 false 和 nil 为假;table 同时充当数组和字典,索引从 1 开始,给字段赋 nil 即删除。
Alexer 发布于 

session 与 cookie 区别 速查

cookie 数据存在浏览器,能看到也能改,每次请求自动带上,可设长有效期,但容量小,别放敏感信息;session 数据存在服务端,浏览器只留 session_id,通常靠 cookie 传递,相对安全,但用户禁用 cookie 时会失效。登录状态用 session,小标记用 cookie。
Alexer 发布于 

Lua 冒号调用与点调用区别 速查

冒号调用是语法糖,obj:fn(a) 等于 obj.fn(obj, a),自动把对象作为 self 传入;点调用必须手动传。定义时冒号自动带 self 形参,点定义要自己写 self。定义和调用保持同一种写法,混用会导致参数错位。
Alexer 发布于 

spl_autoload_register 用法 速查

spl_autoload_register 用来注册自动加载函数,new 未引入的类时 PHP 会回调它并传入类名,在函数里按类名拼路径 require 即可。类名含命名空间时把反斜杠换成目录分隔符;第三个参数传 true 可插到队列前面优先执行,配 spl_autoload_unregister 可撤销。
Alexer 发布于 

Lua 模式匹配基础 速查

Lua 模式匹配不用正则,靠 string.find、match、gmatch、gsub 四个函数。记住 %a %d %s %w 这类字符类,大写取反,魔法字符加 % 转义,量词有 * + - ?, 是字符集,() 做捕获,%1 在 gsub 里引用捕获内容。
Alexer 发布于 

Lua string.gsub 替换 速查

string.gsub 用于全局替换字符串,返回替换后的新字符串和替换次数。模式用 %d、%a、%s 等 Lua 匹配规则,替换内容支持 %0、%1 捕获引用,也可传函数或表,第四个参数可限制替换次数。
Alexer 发布于 

char 与 varchar 区别 速查

CHAR 定长、不足补空格、取值去尾空格,最大 255;VARCHAR 变长、带 1~2 字节长度前缀、保留尾空格,n 指字符数,受行大小限制。长度固定选 CHAR,其余用 VARCHAR。
Alexer 发布于 

UNION 与 UNION ALL 区别 速查

UNION 合并结果并去重,UNION ALL 保留所有行不去重。两者都要求列数一致、类型兼容;允许重复时用 UNION ALL 更快。
Alexer 发布于 

Lua table.insert 用法 速查

table.insert 用于向 Lua 表插入元素:只传值追加到末尾,传位置则插到指定下标并后移后续元素,表长度自动加一。位置范围 1 到 #t+1,只适用于连续下标的数组,循环收集数据时最常用。
Alexer 发布于 

MySQL 分页越查越慢原因 速查

分页越查越慢是因为 LIMIT 的 offset 太大:MySQL 得先扫过并丢弃前面所有行,二级索引还要逐行回表,排序无索引再加 filesort。改用 where id > 上一页最大 id 往下取,或用延迟关联先查主键再回表,就能稳住速度。
Alexer 发布于