欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP7新特性 What will be in PHP 7/PHPNG

程序员文章站 2022-06-14 13:05:38
...
PHP7将在2015年10月正式发布,我们来看看官网给出的php7 特性
官网: http://www.php7.ca/ https://wiki.php.net/phpng


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)


  • Cool Name: PHPNG
  • 酷名: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.net 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.net 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