日韩性视频-久久久蜜桃-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 | 91在线无精精品入口 | 曰批又黄又爽免费视频 | 久久久久亚洲av成人网人人网站 | 欧美激情福利 | 古装做爰无遮挡三级 | 草久在线| 黄色av免费播放 | 国产精品一区二区无码免费看片 | 欲求不满的岳中文字幕 | 五月婷婷天堂 | 人善交videos欧美3d动漫 | 香蕉国产片 | 中文在线一区二区 | 黑人巨大精品欧美黑白配亚洲 | 成人高清视频免费观看 | 在线播放日韩av | 在线观看污污视频 | 天堂网中文 | 在线观看久 | 桃色视频在线 | 天堂在线精品视频 | 天天干天天爱天天射 | 成人午夜视频在线免费观看 | 日韩v | 天天夜夜啦啦啦 | 中文亚洲av片不卡在线观看 | 欧美日韩国产亚洲一区 | 九九九热| 日日操日日爽 | 少妇又色又紧又黄又刺激免费 | 性感美女高潮 | 超碰在 | 夜色视频在线观看 | 91caob| 国产三级免费观看 | 91日韩在线视频 | 亲子乱aⅴ一区二区三区 | 热热久| 国产av电影一区二区三区 | 日本在线免费观看视频 | 国产看真人毛片爱做a片 | a级片网站 | 国产区精品 | 尤物av无码色av无码 | 男人午夜天堂 | 91中文字日产乱幕4区 | 男女插插插视频 | 人人干人人草 | 国产又黄又湿 | 午夜在线播放 | 国产亚洲久一区二区 | 日本精品影院 | 中文字幕日韩一区二区三区不卡 | 亚洲av电影一区二区 | 国产精品视频在线播放 | 午夜色影院 | 国产xxxx孕妇 | 欧美成人三级在线 | 69国产成人精品二区 | 影音先锋在线观看视频 | 美女扒开腿让人桶爽原神 | 亚洲免费色 | 亚洲黄色激情 | 一级做a爰片久久毛片 | 亚洲综合第一区 | 91国在线观看 | 久久中文字幕高清 | 精品国产一区二区三区久久狼黑人 | 成人黄色av网站 | 国产又粗又黄 | 久艹伊人 | 日本丰满熟妇bbxbbxhd | 久久一区av | 成人免费播放视频 | 五月天黄色网址 | 大学生av | 黄色a级片视频 | 又色又爽又黄18网站 | 超碰在 | 四虎影库 | 日韩毛片免费观看 | 欧洲美女与动交ccoo | 亚洲成人午夜在线 | 无码国产伦一区二区三区视频 | 免费三级在线 | 国产精品三级电影 | 欧美日韩在线免费看 | 国产高潮久久久 | 欧美视频第一页 | 亚洲第一精品在线观看 | 四虎视频在线观看 | 国产一区二区三区小说 | 在线观看wwww | 国产精品久久久久无码av色戒 | 精品一区二区三区在线免费观看 | 搡老岳熟女国产熟妇 | 少妇人妻一级a毛片 |