当前位置:Gxlcms >
PHP教程 >
为啥直接PHP5.6跳到PHP7(ReasonsgivenwhyweneedtoskiptoPHP7)
为啥直接PHP5.6跳到PHP7(ReasonsgivenwhyweneedtoskiptoPHP7)
时间:2021-07-01 10:21:17
帮助过:18人阅读
PHP7新特性 What will be in PHP 7/PHPNG
官网:http://www.php7.ca/ https://wiki.php.com/phpng PHP7将在2015年10月正式发布,PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。 该 发布版本将会专注在性能加强,源自PHP版本树中的phpng分支。在硅谷公司的ZendCon会议,PHP工具厂商Zend技术官方讨论phpng和 PHP7的进度。“(本次升级)真正专注于帮助业界的应用程序显著加强执行速度,再加上,我们在PHP中的其他改进,”Zend的首席执行官安迪特曼斯 (曾参与了PHP语言的持续开发和发展)表示。 我们来看看官网给出的php7 特性:
PHP7新特性( What will be in PHP 7 / PHPNG )
- Performance Improvements with the addition of PHPNG engine.
使用PHPNG引擎来提升性能
- JIT - Just in Time compiler
即时编辑器 JIT Compiler_百度百科
- Abstract Syntax Tree for compilation
抽象语法树编译
- Asynchronous refactoring of the I/O layer.
对I/O层的异步重构。
- Multi-threaded build in Web Server
多线程构建Web服务器
- Expanded use of ->, [], (), {}, and :: operators
扩展使用 ->, [], (), {}, 和 :: 符号
- 100% increase in performance
性能提升 100% (应该是QPS)
酷名:PHPNG引擎
为啥直接PHP5.6跳到PHP7(Reasons given why we need to skip to PHP 7)
There are several reasons of why we shouldn't reuse version 6 for the next major version of PHP.
- First and foremost, PHP 6 already existed and it was something completely different. The decimal system (or more accurately the infinite supply of numbers we have) makes it easy for us to skip a version, with plenty more left for future versions to come.
- While it's true that the other PHP 6 never reached General Availability, it was still a very widely published and well-known project conducted by php.com that will share absolutely nothing with the version that is under discussion now. Anybody who knew what PHP 6 is (and there are many) will have a strong misconception in his or her mind as to the contents and features of this new upcoming version (essentially, that it's all about Unicode).
- PHP 6, the original PHP 6, has been discussed in detail in many PHP conferences. It was taught to users as a done-deal, including detailed explanations about features and behavior (by php.com developers, not 'evil' book authors).
- PHP 6 was widely known not only within the Internals community, but around the PHP community at large. It was a high profile project that many - if not most - PHP community members knew about.
- There's lots of PHP 6 information, about the original PHP 6, that exists around the web. Books are the smallest part of the problem.
- Unlike the 'trivia question' of 'why did we skip into 7?', reusing version 6 is likely to call real confusion in people's minds, with ample information on two completely different versions with entirely different feature sets that have the exact same name.
- Skipping versions isn't unprecedented or uncommon in both open source projects and commercial products. MariaDB, jumped all the way up to version 10.0 to avoid confusion, Netscape Communicator skipped version 5.0 directly into 6.0, and Symantec skipped version 13. Each and every one of those had different reasons for the skipping, but the common denominator is that skipping versions is hardly a big deal.
- Version 6 is generally associated with failure in the world of dynamic languages. PHP 6 was a failure; Perl 6 was a failure. It's actually associated with failure also outside the dynamic language world - MySQL 6 also existed but never released. The perception of version 6 as a failure - not as a superstition but as a real world fact (similar to the association of the word 'Vista' with failure) - will reflect badly on this PHP version.
- The case for 6 is mostly a rebuttal of some of the points above, but without providing a strong case for why we *shouldn't* skip version 6. If we go with PHP 7, the worst case scenario is that we needlessly skipped a version. We'd still have an infinite supply of major versions at our disposal for future use. If, however, we pick 6 instead of 7 - the worst case scenario is widespread confusion in our community and potential negative perception about this version.
Supported SAPI
- cli
- cgi
- fpm
- apache (FastCGI and FPM might be significantly faster if mod_php is built as PIC)
- apache2handler
Supported Extensions
- bcmath
- bz2
- calendar
- com_dotnet
- ctype
- curl
- date
- dba
- dom
- enchant
- ereg
- exif
- fileinfo
- filter
- ftp
- gd
- gettext
- gmp
- hash
- iconv
- imap
- intl
- json
- ldap
- libxml
- mbstring
- mcrypt
- mysql
- mysqli
- mysqlnd
- odbc (tested with unixODBC and MySQL driver)
- openssl
- OPcache
- pcntl
- pcre
- PDO
- pdo_firebird
- pdo_mysql
- PDO_ODBC (tested with unixODBC and MySQL driver)
- pdo_pgsql
- pdo_sqlite
- pgsql
- Phar
- posix
- pspell
- readline
- recode
- Reflection
- session
- shmop
- SimpleXML
- snmp
- soap
- sockets
- SPL
- sqlite3
- standard
- sysvmsg
- sysvsem
- sysvshm
- tidy
- tokenizer
- wddx
- xml
- xmlreader
- xmlwriter
- xsl
- zip
- zlib
Unsupported Extensions (not converted yet)
- interbase
- mssql
- oci8
- pdo_dblib
- pdo_oci
- sybase_ct