Ⅰ 是不是都要开发两个: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;
等等,要是使用 宏 来包装,就会让代码看起来比较丑点,但是如果不这样,分两个分支开发的话,那每次都要修改两份代码,也比较费事。
Ⅱ 如何从php5升级到php7
#安装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
#完成.
Ⅲ 如何选择php的版本
您好,很高兴为您解答:
开发新项目:推荐使用PHP7的版本,他是一个趋势,也是优化后的结晶,他的效率非常高。
维护老项目:推荐使用PHP5.2的版本,非常稳定!
使用开源项目/CMS之类的:查询源码支持的PHP版本,一般官网都有文档,像DeDecms推荐使用PHP5.2,WP最新版本推荐PHP7
Laravel,Thinkphp5也支持PHP7了
Ⅳ 如何从php5升级到php7
很简单,你想升级到任何版本,或者回归到任意旧版本都很简单。
你可以使用PHPWAMP随机切换任意PHP版本,提供700个php版本一键切换。
PHPWAMP支持建立无限个站点绑定域名,指定站点可随意修改PHP版本,
如果域名模式和端口模式都想混合使用,也可以使用PHPWAMP。
可以自定义PHP版本,可以同时运行几百个端口模式和域名模式的站点互不影响。
PHPWAMP绿色集成环境(适合在本地,也适合在服务器上面运行)
本地搭建教程:http://jingyan..com/article/1974b289838fb1f4b1f7748d.html
服务器搭建的话,请在网络搜这个标题
“PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例”
首先来看WAMP是什么意思?
Windows下的Apache+MySQL+PHP,称为WAMP。
属于WAMP环境的集成软件有很多,比如wampserver、apmserv、xampp、PHPWAMP等等,这些WAMP环境各有特点。我推荐使用PHPWAMP这款绿色集成环境
绿色集成环境PHPWAMP特点如下:
1、真正纯绿色,集成VC不需要单独安装,下载解压即可使用。
2、能同时运行多个PHP版本,随意自定义设置PHP版本,共700多个PHP版本随意切换。
3、拥有开发模式与运营模式,集成组件未阉割,切换运营模式,即可直接运行在服务器端
4、拥有“强制修改任意环境的Mysql数据库密码”功能,忘记数据库密码可以一键强制修改。
5、运行中的网站可瞬间强制删除,也能一键干掉电脑里全部的php环境,方便重装
6、强制干掉一切环境阻碍,一键去除任意web服务器站点域名的非80端口。
7、集成网页加密等实用工具,不同PHP版本配置区分,日志分割处理等多种实用功能。
8、多功能站点管理,自动定时重启服务器,自动定时重启Apache、mysql等相关服务。
PHPWAMP自带php5.2、php5.3、php5.4、php5.5、php5.6、php7这6个默认版本,拥有共生模式(与其他环境同时使用),单身狗霸体模式,强行打通阻碍运行网站。
这篇教程文章里提供700多个PHP版本下载。(700个PHP版本一键切换)
网络搜索这个文章标题:
PHP集成环境如何自定义PHP版本,同时运行多个php版本一键开启模块。
搜到的文章中,在文章的附件里有提供PHP历史版本下载,差不多700多个PHP版本。
Ⅳ 学php7还是php5,刚进大学计算机专业,作为选修课学的是php5,但是现在都7了,想问一下下一步方向应该怎么走
建议先学会PHP再说,现在没必要纠结版本
建议先从整体入门开始学习,你可以先学习phpwamp,然后再到细节的功能实现。
学习PHP推荐你使用功能强大的PHPWAMP。
32位和64位的PHP版本随意切换,700个PHP版本随意切换。
首先来看WAMP是什么意思?
Windows下的Apache+MySQL+PHP,称为WAMP。
属于WAMP环境的集成软件有很多,比如wampserver、apmserv、xampp、PHPWAMP等等,这些WAMP环境各有特点。
你可以用PHPWAMP绿色集成环境(适合在本地,也适合在服务器上面运行)
本地搭建:http://jingyan..com/article/1974b289838fb1f4b1f7748d.html
服务器搭建的话,请在网络搜这个标题
“PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例”
集成环境是否适合在服务器上,可以看此文介绍的内容:
http://jingyan..com/article/e4511cf34ccdc92b845eafd3.html
支持所有Windows系统,目前最新的Windows10也没问题。
绿色集成环境PHPWAMP特点如下:
1、真正纯绿色,集成VC不需要单独安装,下载解压即可使用。
2、能同时运行多个PHP版本,随意自定义设置PHP版本,共700多个PHP版本随意切换。
3、拥有开发模式与运营模式,集成组件未阉割,切换运营模式,即可直接运行在服务器端
4、拥有“强制修改任意环境的Mysql数据库密码”功能,忘记数据库密码可以一键强制修改。
5、运行中的网站可瞬间强制删除,也能一键干掉电脑里全部的php环境,方便重装
6、强制干掉一切环境阻碍,一键去除任意web服务器站点域名的非80端口。
7、集成网页加密等实用工具,不同PHP版本配置区分,日志分割处理等多种实用功能。
8、多功能站点管理,自动定时重启服务器,自动定时重启Apache、mysql等相关服务。
PHPWAMP自带php5.2、php5.3、php5.4、php5.5、php5.6、php7这6个默认版本,拥有共生模式(与其他环境同时使用),单身狗霸体模式,强行打通阻碍运行网站。
这篇教程文章里提供700多个PHP版本下载。(700个PHP版本一键切换)
网络搜索这个文章标题:
PHP集成环境如何自定义PHP版本,同时运行多个php版本一键开启模块。
搜到的文章中,在文章的附件里有提供PHP历史版本下载,差不多700多个PHP版本。
Ⅵ 关于PHP5与PHP7的若干问题
一、
1、在Zend引擎和扩展中,经常要创建一个PHP的变量,底层就是一个zval指针。之前的版本都是通过MAKE_STD_ZVAL动态的从堆上分配一个zval内存。而PHP7可以直接使用栈内存。PHP代码中创建的变量也进行了优化,PHP7直接在栈内存上预分配zval。这样节约了大量内存分配和内存管理的操作。
2、zend_string存储hash值,array查询不再需要重复计算hash
3、PHP5的hashtable每个元素都是一个
Bucket
*,而PHP7直接存Bucket,减少了内存申请次数,提升了Cache命中率和内存访问速度。
4、PHP的C扩展函数与PHP中的变量进行参数输入时,要使用zend_parse_parameters()函数,这个函数根据一个字符串参数找到对应PHP的zval指针,然后进行赋值。
这个函数实际上有一定的性能消耗。PHP7直接使用宏替换了zend_parse_parameters函数,C扩展中不再需要使用zend_parse_parameters进行逐个参数的查找,宏展开后自动会实现参数赋值。仅此一项就提升了5%的性能。
5、很多PHP程序中会大量使用call_user_function,
is_int/string/array,
strlen
,
defined
函数。PHP5
都是以扩展函数的方式提供,PHP7中这4类函数改成ZendVM的OPCODE指令,执行更快。
除了上面5个主要优化点之外,PHP7还有其他更多的细节性能优化。如基础类型int、float、bool等改为直接进行值拷贝,排序算法改进,PCRE
with
JIT,execute_data和opline使用全局寄存器等等。PHP7对性能的优化会继续进行下去。
二、有一群人,
创建了一个PHP6的项目,
主要的目的是为PHP引擎增加Unicode支持.
当时开发者们同时维护5和6的开发,
慢慢的大家发现新功能都等着提交给6,
而6因为开发速度慢,
导致很多新特性没法提交,
状态很不理想.
再后来6就没人开发了
三、不太了解、我只用git下的php7主干代码