工具
Web 开发
Web 服务
PHP
实用函数
JSON
JSON 编解码:
json_encode();
json_decode();
json_encode()
默认对中文以及 /
字符转义,取消这两种字符转义:
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
注意到 JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
的值为 320,因此以上函数调用等同于:
json_encode($data, 320);
json_decode()
解码默认返回 Object,第二个参数设置为 true 时返回关联数组:
json_decode($s, true);
Redis
有多种方法安装 PHP Redis:
$ pecl install redis
$ pickle install redis
$ yum install php-pecl-redis
安装 phpredis 时可能需要关联的几个库:
igbinary
- 用来替代标准的 PHP Serializer
安装 phpredis 后,检查 php.ini 是否自动开启了 redis.so
$ cat /usr/local/etc/php/7.2/php.ini | grep redis
extension="redis.so"
如果以 php-fpm 方式运行,重启 Apache 服务:
$ brew services restart httpd
PHP 版本
PHP 5.6 升级到 PHP 7
ext/mysql
已不再支持,可以继续使用ext/mysqli
和PDO_MySQL
,参考 PHP 官方文档 - MySQL APIINI
文件中不支持#
打头的注释。注释行应用;
打头。JSON
扩展被JSOND
取代;解析空字符串将被视为错误。- 浮点数转整数如果溢出(浮点数太大)会生成 E_WARNING 错误并返回 NULL。
异常与错误处理
PHP 7 引入了 Throwable
接口和 Error
类:
- 所有可以通过
throw
抛出的对象都继承自Throwable
接口 - 所有 PHP 内部错误都继承自
Error
Exception
类在 PHP 5 中就有,PHP 7 中 Exception
实现了 Throwable
接口,用户定义的异常都应该继承自 Exception
类。这三者间的关系如下:
Throwable
└── Error
└── Exception