日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php7与php5的区别,PHP7和PHP5区别

發布時間:2025/4/16 php 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php7与php5的区别,PHP7和PHP5区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP7比PHP5.0 ~ 5.6快了近5倍,同時還降低了對系統資源的占用。主要是PHP7對Zend引擎進行了深度優化。

之前在書上看到過兩者比較全面的區別,回頭去翻了翻書【眼過千遍,不如手過一遍啊】,特記錄如下。

分三個方面來比較:

0、底層優化

1、語法變化

2、性能變化

0、增加抽象語法樹(AST)。

PHP5:PHP代碼在語法解析階段直接生成opline指令,執行器直接執行opline指令。

PHP7: PHP代碼解析生成抽象語法樹,然后將抽象語法樹編譯成opline指令。解耦編譯器和執行器。

1、Native TLS(線程局部存儲)

PHP5: 通過參數傳遞的方式傳遞本線程資源池。容易遺漏、并且及其不優雅。

PHP7: 使用Native TLS來保存線程的資源池。

2、指定函數參數、返回值類型

PHP7: 指定了函數參數和返回值類型。

注意??:如果類型不一致會報error錯誤。嘗試了不太好用,比如int和string不好分,input過來的id=1是string, 代碼中是int, 需要手動轉換。

3、zval結構的變化。

PHP5: refcount__gc在zval中;zval結構大小24byte。

PHP7: refcount__gc在zval的value中;zval結構大小16byte。

3.1、PHP5 zval結構

定義文件{PHPSRC}/Zend/zend.h

typedef struct _zval_struct {

zvalue_value value;

zend_uint refcount__gc;

zend_uchar type;

zend_uchar is_ref__gc;

} zval;

typedef union _zvalue_value {

long lval;

double dval;

struct {

char *val;

int len;

} str;

HashTable *ht;

zend_object_value obj;

} zvalue_value;

typedef struct _zval_struct zval;

struct _zval_struct {

zend_value value;/* value */

union {

struct {

ZEND_ENDIAN_LOHI_3(

zend_uchar type,/* active type */

zend_uchar type_flags,

union {

uint16_t extra; /* not further specified */

} u)

} v;

uint32_t type_info;

} u1;

union {

uint32_t next; /* hash collision chain */

uint32_t cache_slot; /* cache slot (for RECV_INIT) */

uint32_t opline_num; /* opline number (for FAST_CALL) */

uint32_t lineno; /* line number (for ast nodes) */

uint32_t num_args; /* arguments number for EX(This) */

uint32_t fe_pos; /* foreach position */

uint32_t fe_iter_idx; /* foreach iterator index */

uint32_t access_flags; /* class constant access flags */

uint32_t property_guard; /* single property guard */

uint32_t constant_flags; /* constant flags */

uint32_t extra; /* not further specified */

} u2;

};

typedef union _zend_value {

zend_long lval;/* long value */

double dval;/* double value */

zend_refcounted *counted;

zend_string *str;

zend_array *arr;

zend_object *obj;

zend_resource *res;

zend_reference *ref;

zend_ast_ref *ast;

zval *zv;

void *ptr;

zend_class_entry *ce;

zend_function *func;

struct {

uint32_t w1;

uint32_t w2;

} ww;

} zend_value;

4、異常處理

PHP7將多數錯誤改為異常拋出。

PHP5: 調用的方法不存在報error。

PHP7: 可通過try catch捕獲,使得錯誤處理更加可控。

try {

salmonl();

} catch (Throwable $e) {

var_dump($e->getMessage);

}

// PHP5下運行結果

// Fatal error: Call to undefined function salmonl() in [...][...] on line 3

// PHP7下運行結果

// Notice: Undefined property: Error::$getMessage in [...][...] on line 5

說明:PHP7下是通過Throwable異常類來捕獲的,Throwable是父類,Exception類和Error類是子類。

5、HashTable的變化。

PHP5: HashTable結構大小72tye; 數組元素Bucket結構72byte。

PHP7: HashTable結構大小56tye; 數組元素Bucket結構32byte。

6、執行器。

PHP5: 通過執行器的調度函數execute_ex()傳遞execute_data和opline兩個變量。

PHP7: execute_data和opline通過寄存器變量存儲。

7、新的參數解析方式。

PHP7: 定義2個宏包裹待解析參數。

8、語法新特性

8.0、null合并運算符

// PHP5

$id = isset($_GET['id']) ? $_GET['id'] : 0;

// PHP7

$id = $_GET['id'] ?? 0;

8.1、太空船操作符

// PHP5

usort($datas, function ($a, $b) {

if ($a['score'] == $b['score']) {

return 0;

}

return ($a['score'] < $b['score']) ? 1 : -1;

});

// PHP7

usort($datas, function ($a, $b) {

return $b['score'] <=> $a['score'];

});

8.2、define定義常量數組

// version >= 5.6

const IT = ['sina', 'baidu', 'tencent'];

echo IT[0];

// version >= 7.0

define('IT', ['sina', 'baidu', 'tencent']);

echo IT[0];

參考:

《PHP7內核剖析》

手冊:PHP7新特性

總結

以上是生活随笔為你收集整理的php7与php5的区别,PHP7和PHP5区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久伊人影视 | 中日韩av电影 | 午夜簧片 | 不卡视频一区二区三区 | 日本精品一区在线 | 操处女逼视频 | 日韩欧美国产成人精品免费 | 欧美理论片在线观看 | 成人小视频免费观看 | 中出在线视频 | 姝姝窝人体www聚色窝 | 亚洲最大成人在线视频 | 久久不卡日韩美女 | 亚洲天堂一级 | 日韩一区二区久久 | 91麻豆成人精品国产 | 麻豆精品久久久 | av大全在线观看 | 美女露胸软件 | 老司机午夜免费福利 | 精品人妻一区二区三区日产乱码 | 国产女人在线视频 | 日日噜噜夜夜爽爽 | 午夜三级福利 | 老司机成人在线 | 中文自拍| 一级丰满大乳hd高清 | 黄色网页在线播放 | a级黄片毛片 | 亚洲欧美精品suv | av黄色网 | 国产精品九色 | 日韩在线观看不卡 | 精品久久久久久久久久 | 理论片中文 | 国产aⅴ无码片毛片一级一区2 | 肉肉视频在线观看 | 美女视频黄a视频全免费观看 | 国产精品久久一区二区三区 | 午夜精品久久久久久久蜜桃 | 美国av大片 | 天海翼av在线 | 17c精品麻豆一区二区免费 | 色窝网| 先锋影音av在线 | 中文字幕淫 | 免费观看日本 | 国产黄色片在线播放 | 五月婷久久 | 欧美一区综合 | 老妇free性videosxx | 爱爱视频日本 | 国产美女视频免费观看下载软件 | 日本少妇bbwbbw精品 | 日本一区二区免费电影 | 亚洲在线中文字幕 | 91综合网 | 日韩第一页在线 | 经典毛片 | 国产亚洲一区二区在线 | 欧美专区在线观看 | 日本国产精品视频 | 美女精品网站 | 毛片全黄| 国产在线欧美 | 国产精品海角社区 | 99久久免费国产精精品 | 欧美春色 | av在线电影观看 | 天堂网一区二区 | 自拍偷拍1| 国产欧美高清 | 午夜香蕉网 | 精品人伦一区二区三区蜜桃网站 | www插插插无码免费视频网站 | 欧美成人性生活视频 | 欧美精品乱码久久久久久 | 免费看片91| 国产又大又粗又长 | 国产黄色免费在线观看 | 中文欧美日韩 | 肉视频在线观看 | 不卡视频在线播放 | 成人试看120秒体验区 | 国产香蕉97碰碰碰视频在线观看 | 欧美激情影音先锋 | 久久久久久爱 | 肮脏的交易在线观看 | 国产国产精品 | 少妇无码一区二区三区免费 | 粉嫩aⅴ一区二区三区四区五区 | 免费网站在线高清观看 | 韩国bj大尺度vip福利网站 | 日韩精品v| 精品一区二区三区毛片 | 日韩激情综合 | 国产亚洲精品久久久久动 | 国产成人在线观看免费网站 | 狼干综合 |