php7.0新特性汇总

Core:

  • Added zend_internal_function.reserved[] fields.
  • Improved __call() and __callStatic() magic method handling. Now they are called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without additional stack frame.
  • Optimized strings concatenation.
  • Fixed weird operators behavior. Division by zero now emits warning and returns +/-INF, modulo by zero and intdid() throws an exception, shifts by negative offset throw exceptions. Compile-time evaluation of division by zero is disabled.
  • Added PHP_INT_MIN constant.
  • Added Closure::call() method.
  • Implemented the RFC `Catchable "Call to a member function bar() on a non-object"`.
  • Added options parameter for unserialize allowing to specify acceptable classes (https://wiki.php.net/rfc/secure_unserialize).
  • Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class modifier.
  • is_long() & is_integer() is now an alias of is_int().
  • Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes).
  • Added ?? operator.
  • Added <=> operator.
  • Added \u{xxxxx} Unicode Codepoint Escape Syntax.
  • Fixed oversight where define() did not support arrays yet const syntax did.
  • Use "integer" and "float" instead of "long" and "double" in ZPP, type hint and conversion error messages.
  • Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output buffering handler).
  • Removed scoped calls of non-static methods from an incompatible $this context.
  • Removed support for #-style comments in ini files.
  • Removed support for assigning the result of new by reference.
  • Invalid octal literals in source code now produce compile errors, fixes PHPSadness #31.
  • Removed dl() function on fpm-fcgi.
  • Removed support for hexadecimal numeric strings.
  • Removed obsolete extensions and SAPIs. See the full list in UPGRADING.
  • Added NULL byte protection to exec, system and passthru.
  • Added error_clear_last() function.
  • Improved zend_qsort(using hybrid sorting algo) for better performance, and also renamed zend_qsort to zend_sort.
  • Added stable sorting algo zend_insert_sort.
  • Improved zend_memnchr(using sunday algo) for better performance.
  • Implemented the RFC `Scalar Type Decalarations v0.5`.
  • Implemented the RFC `Group Use Declarations`.
  • Implemented the RFC `Continue Output Buffering`.
  • Implemented the RFC `Constructor behaviour of internal classes`.
  • Implemented the RFC `Fix "foreach" behavior`.
  • Implemented the RFC `Generator Delegation`.
  • Implemented the RFC `Anonymous Class Support`.
  • Implemented the RFC `Context Sensitive Lexer`.

CLI server:

  • Refactor MIME type handling to use a hash table instead of linear search.
  • Update the MIME type list from the one shipped by Apache HTTPD.
  • Added support for SEARCH WebDav method.

Curl:

  • Removed support for unsafe file uploads.

Date:

  • Removed $is_dst parameter from mktime() and gmmktime().
  • Removed date.timezone warning (https://wiki.php.net/rfc/date.timezone_warning_removal).
  • Added "v" DateTime format modifier to get the 3-digit version of fraction of seconds.

DOM:

  • Made DOMNode::textContent writeable.

Filter:

  • New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL.

 

GD:

  • Replace libvpx with libwebp for bundled libgd.
  • Made fontFetch's path parser thread-safe.
  • Removed T1Lib support.

Intl:

  • Removed deprecated aliases datefmt_set_timezone_id() and IntlDateFormatter::setTimeZoneID().

JSON:

  • Replace non-free JSON parser with a parser from Jsond extension, fixes #63520 (JSON extension includes a problematic license statement).

LiteSpeed:

  • Updated LiteSpeed SAPI code from V5.5 to V6.6.

libxml:

  • Fixed handling of big lines in error messages with libxml >= 2.9.0.

Mcrypt:

  • Fixed possible read after end of buffer and use after free.
  • Removed mcrypt_generic_end() alias.
  • Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb().

OCI8:

  • Fixed memory leak with LOBs.
  • Corrected oci8 hash destructors to prevent segfaults, and a few other fixes.

Opcache:

  • Attmpt to fix "Unable to reattach to base address" problem.
  • Removed opcache.load_comments configuration directive. Now doc comments loading costs nothing and always enabled.
  • Added experimental (disabled by default) file based opcode cache.
  • Fixed bug with try blocks being removed when extended_info opcode generation is turned on.

 

OpenSSL:

  • Require at least OpenSSL version 0.9.8.
  • Added "alpn_protocols" SSL context option allowing encrypted client/server streams to negotiate alternative protocols using the ALPN TLS extension when built against OpenSSL 1.0.2 or newer. Negotiated protocol information is accessible through stream_get_meta_data() output.
  • Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic detection or the "peer_name" option instead.

Pcntl:

  • Implemented FR #68505 (Added wifcontinued and wcontinued).
  • Added rusage support to pcntl_wait() and pcntl_waitpid().

PCRE:

  • Removed support for the /e (PREG_REPLACE_EVAL) modifier.

PDO_pgsql:

  • Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of ATTR_EMULATE_PREPARES).

Reflection:

  • Added ReflectionGenerator class.
  • Added reflection support for return types and type declarations.

SPL:

  • Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of iterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.

Standard:

  • Fixed count on symbol tables.
  • Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`.
  • Removed call_user_method() and call_user_method_array() functions.
  • Fixed user session handlers (See rfc:session.user.return-value).
  • Added intdiv() function.
  • Improved precision of log() function for base 2 and 10.
  • Remove string category support in setlocale().
  • Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime().
  • Added preg_replace_callback_array function.
  • Deprecated salt option to password_hash.
  • Added Windows support for getrusage().
  • Removed hardcoded limit on number of pipes in proc_open().

Streams:

  • Removed set_socket_blocking() in favor of its alias stream_set_blocking().

Zlib:

  • Added deflate_init(), deflate_add(), inflate_init(), inflate_add() functions allowing incremental/streaming compression/decompression.

Zip:

  • Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex methods.
  • Update bundled libzip to 1.0.1.

 

 

 

重点关注remove特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值