xsmscb 发表于 2017-12-29 16:33:55

php各版本的姿势(2017-02

  今天被p师傅的黑魔法给震惊到啦,我一定是学了假php,仔细想想,其实对php版本更新并没有在意多少,都是活在5.3那个版本,可现在都是7.0啦!
  
另外的是在很多时候测试代码的时候,也很依靠版本问题。
  http://php.net/manual/zh/appendices.php

php5.2以前
  1、__autoload加载类文件,但只能调用一次这个函数,所以可以用spl_autoload_register加载类

php5.3
  1、新增了glob://和phar://流包装
  
glob用来列目录,绕过open_baedir
  
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
  1、移除安全模式、魔术引号
  
2、register_globals 和 register_long_arrays php.ini 指令被移除。
  
3、php.ini新增session.upload_progress.enabled,默认为1,可用来文件包含
  
http://php.net/manual/zh/session.configuration.php
  
http://php.net/manual/zh/session.upload-progress.php

php5.5
  1、废除preg_replace的/e模式(不是移除)
  
当使用被弃用的 e 修饰符时, 这个函数会转义一些字符(即:'、&quot;、  和 NULL) 然后进行后向引用替换。
  
http://php.net/manual/zh/function.preg-replace.php

php5.6
  1、使用 ... 运算符定义变长参数函数
  
http://php.net/manual/zh/functions.arguments.php#functions.variable-arg-list

php7.0
  1、十六进制字符串不再是认为是数字
  
2、移除asp和script php标签
  

<% %>  
<%= %>
  
<script language=&quot;php&quot;></script>
  

  3、在后面的版本中assert变成语言结构,这将意味着很多一句话不能使用。
  
目前经过测试,可使用的有。
  

call_user_func('assert', 'phpinfo();');   

php7.1
  http://php.net/manual/zh/migration71.new-features.php
  
1、废除mb_ereg_replace()和mb_eregi_replace()的Eval选项
页: [1]
查看完整版本: php各版本的姿势(2017-02