查看过鸟哥的几个扩展,都是新拉个分支来写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;等等,要是使用 宏 来包装,就会让代码看起来比较丑点,但是如果不这样,分两个分支开发的话,那每次都要修改两份代码,也比较费事。
我觉得是更加规范,增加了很多功能扩展
ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG增加抽象语法树,使编译更加科学64位的INT支持统一的变量语法原声的TLS - 对扩展开发有意义一致性foreach循环的改进新增 <=>、**、?? 、\u{xxxx}操作符增加了返回类型的声明增加了标量类型的声明核心错误可以通过异常捕获了增加了上下文敏感的词法分析
最大的影响就是php7不在支持mysql扩展,只支持mysqli和pdo,说白了就是强制性废弃面向过程的连接数据库方法。其他影响不大。少量函数有所废弃,一般也用不到。
php5.2.2增强了类的概念和功能
可以并存,如果使用不同版本的PHP-FPM注意端口就行。安装没有任何问题
你可以使用集成环境,更新最新版也方便,我平时用的时phpwamp8.1.8.8集成环境,支持700多个PHP版本一键切换,支持自定义设置php版本,可以随便升级到最新版本。phpwamp还支持同时运行多个不同的PHP版本,应该能满足你的要求了
#安装ppa sudo apt-get install python-software-properties software-properties-common sudo add-apt-repository ppa:ondrej/php-7.0 sudo apt-get update #删除php5 sudo apt-get purge php5-fpm php5-mysql php5-common sudo apt-get --purge autoremove #安装php7 sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl #把nginx *.conf 里的fastcgi_pass配置改成:fastcgi_pass unix:/run/php/php7.0-fpm.sock; #重启nginx sudo service nginx reload #完成.
ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG增加抽象语法树,使编译更加科学64位的INT支持统一的变量语法原声的TLS - 对扩展开发有意义一致性foreach循环的改进新增 <=>、**、?? 、\u{xxxx}操作符增加了返回类型的声明增加了标量类型的声明核心错误可以通过异常捕获了增加了上下文敏感的词法分析