PHP5.2 以前:autoload,PDO和MySQLi,类型约束
PHP5.2:JSON支持
PHP5.3
- 新增魔术方法
- 不推荐使用魔法引号自动过滤(magic_quotes_gpc)
- 5.3.4下存在php%00截断,利用需要关闭magic_quotes_gpc。
- 新增了glob://和phar://流包装
glob用来列目录,绕过open_basedir
http://php.net/manual/zh/wrappers.phar.php
phar在文件包含中可以用来绕过一些后缀的限制
http://php.net/manual/zh/wrappers.phar.php、
2.新的全局变量DIR
3.默认开启<?==$xxoo;?>,5.4也可用
PHP5.4:
- 移除魔术引号自动过滤(magic_quotes_gpc)、magic_quotes_runtime(魔术引号自动过滤)、magic_quotes_gpc(魔术引号自动过滤)
- 移除register_globals(全局变量注册开关)
- 移除safe_mode(安全模式)
PHP5.5:
- 废除preg_replace的/e模式(不是移除)
当使用被废弃的e修饰符时,这个函数会转义一些字符(即:’ 、" 、\和NULL)然后进行后向引用替换。
http://php.net/manual/zh/function.preg-replace.php
PHP5.6
- 使用…运算符定义变长参数函数
http://php.net/manual/zh/functions.arguments.php#functions.variable-arg-list
PHP7.0
- 十六进制字符串不再认为是数字
- 移除asp和script php标签
<% %>
<%= %>
<script language=“php”>
PHP7.1
1 废除mb_ereg_replace()和mb_eregi_replace()的Eval选项
http://php.net/manual/zh/migration71.new-features.php
PHP弱类型简介
弱类型语言对变量数据类型不会有限制,可以根据需求改变变量的数据类型。PHP会根据变量的值,自动把变量的值转换为正确的数据类型,但在这个转换过程中如果使用不当就会产生安全问题。
注:
当一个字符串被当做一个数值来取值,其结果和类型如下:如果该字符串没有包含’.’,‘e’,'E’并且其数值在整形的范围之内 该字符串被当做int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。