1. 程式人生 > >php各版本的姿勢(2017-02-15更新)

php各版本的姿勢(2017-02-15更新)

目前 php5 com script arr use 今天 name val

今天被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 修飾符時, 這個函數會轉義一些字符(即:‘、"、 \ 和 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="php"></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選項

php各版本的姿勢(2017-02-15更新)