❶ php7相對於php5有哪些變動
ZEND引擎升級到Zend Engine 3,也就是所謂的PHP NG
增加抽象語法樹,使編譯更加科學
64位的INT支持
統一的變數語法
原聲的TLS - 對擴展開發有意義
一致性foreach循環的改進
新增 <=>、**、?? 、\u{xxxx}操作符
增加了返回類型的聲明
增加了標量類型的聲明
核心錯誤可以通過異常捕獲了
增加了上下文敏感的詞法分析
❷ 是不是都要開發兩個:php5和php7版的
查看過鳥哥的幾個擴展,都是新拉個分支來寫php7版的擴展;
而swoole擴展,倒是使用了個php7-swapper.h來包裝,但是它裡面使用的php內核的東西相對來說比較好用宏來操作。
比如,在php5版擴展下有如下定義:
typedef struct _test_obj {
zend_object std; // 放到頭部
my_test_struct *my; int count;
} test_obj;
根據php7擴展改進意見,該結構體需要修改為:
typedef struct _test_obj {
my_test_struct *my; int count;
zend_object std; // 放到尾部} test_obj;
等等,要是使用 宏 來包裝,就會讓代碼看起來比較丑點,但是如果不這樣,分兩個分支開發的話,那每次都要修改兩份代碼,也比較費事。
❸ PHP7和PHP5語法上有什麼不同
推薦學習PHP7,他的效率更高,也是未來趨勢。
ZEND引擎升級到Zend Engine 3,也就是所謂的PHP NG、增加抽象語法樹,
使編譯更加科學、64位的INT支持、統一的變數語法、原聲的TLS - 對擴展開發有意義、
一致性foreach循環的改進、新增 <=>、**、?? 、\u{xxxx}操作符、
增加了返回類型的聲明、增加了標量類型的聲明核心錯誤可以通過異常捕獲了、增加了上下文敏感的詞法分析。
簡言之,速度更快了、功能更強了、語法更加嚴謹了、對於大數據的支持越來越好了!