PHP-FPM进程池:FastCGI Process Manager 的master process是常驻内存的,在进程池中动态创建并管理多个进程,可以有效掌握内存和进程并平滑重载PHP配置,在发生意外情形的时候能够重新启动并规复被毁坏的 opcode。参考本人此篇 PHP-FPM进程池探秘 。
数据类型:PHP 支持 9 种原始数据类型:
Lambda表达式(匿名函数)与闭包:Lambda表达式(匿名函数)实现了一次实行且无污染的函数定义,是抛弃型函数并且不掩护任何类型的状态。闭包在匿名函数的根本上增加了与外部环境的变量交互,通过 use 子句中指定要导入的外部环境变量
单/双引号、Heredoc、Nowdoc:单引号字符串中只须要转义单引号(\')、反斜杠(\\),别的原样输出;双引号字符串中的变量将被解析;Heredoc 构造类似于双引号字符串;Nowdoc类似于单引号字符串,nowdoc 构造和 heredocs 构造利用一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'
字串变量解析:可分为解析和解析。解析和解析。解析便是解析出$引出的有效变量,{}解析则是解析{}中引出的变量
SQL注入风险:以下为列举部分
大小写转换:
二进制安全:C字符串以空字符('\0')为结束标志,这使得C字符串不能保存像图片、音频、视频、压缩文件这样的二进制数据,反之则称作二进制安全的。这个观点在PHP中常常提到,此处只做个大略阐明。下面是Redis 大略动态字符串(SDS)的实现,它是二进制安全的:
/ 和 % 以及 运算符:取模运算符%的操作数在运算之前都会转换成整数(撤除小数部分),取模运算符%的结果和被除数的符号(正负号)相同, 表示乘方运算
运算符优先级:优先级从上到下依次降落
unset() 与 NULL:删除引用,触发相应变量容器refcount减一,但在函数中的行为会依赖于想要销毁的变量的类型而有所不同,比如unset 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量(包括函数参数引用通报的变量)将保持调用 unset 之前一样的值;unset 变量与给变量赋值NULL不同,变量赋值NULL直接对相应变量容器refcount = 0
pack()与unpack():这两个函数可用作socket编程时的二进制串编码/解码函数
PHP7 - Group Use用法:
PHP7 - NULL合并运算符(??):
PHP7 - 合并比较运算符(<=>):
PHP7 - 用户层随机数天生器:更安全方便
PHP7 - declare(strict_type=1):PHP7新增int、float、string和bool这4种标量类型声明,declare(strict_type=1)将使PHP不在自动对数据类型进行转换,PHP因此而成为了强类型措辞。declare(strict_type=1)必须是文件的第一个语句,只影响当前文件内的全部函数调用,不会影响被它包含(通过include等办法)进来的其他文件。
PHP7 - 可捕获的Error:PHP7实现了一个全局的throwable接口,原来的Exception和部分Error都实现了这个接口。PHP7中有更多的Error变为可捕获的Exception返回给开拓者,如果不进行捕获则为Error。