検索
php7の新機能のまとめAug 29, 2018 am 10:41 AM
php

この記事は、php7 の新機能をまとめたものです。参考になる内容です。困っている方は参考にしてください。お役に立てれば幸いです。

PHP7 がリリースされてから約 3 年が経過し、現在はバージョン PHP7.2.9 まで発展しています。このリリースにより、PHP のパフォーマンスが大幅に向上しました。これは主に、PHP による Zend エンジンの徹底的な最適化によるもので、システム上の PHP のリソース使用量も削減されました。

主な変更点は次のとおりです。

  • 抽象構文ツリー

PHP の以前のバージョンでは、PHP コードは ZendVM 命令は、構文解析段階で直接生成されます。つまり、opline 命令は、コンパイラーとエグゼキューターを結合する zend_ language_parser.y で直接生成されます。 。

抽象構文ツリーが PHP7 に追加されました。まず、PHP コードが解析されて抽象構文ツリーが生成され、次に抽象構文ツリーが ZendVM 命令にコンパイルされます。抽象構文ツリーの追加により、PHP コンパイラと実行プログラムが適切に分離されます。コンパイラは命令の生成ルールを気にする必要がありません。次に、実行プログラムは、独自のルールに従って抽象構文ツリーを対応する命令にコンパイルします。実行プログラムもまた、この命令の構文規則がどのようなものであるかに注意する必要があります。

  • ネイティブ TLS

ネイティブ TLS (スレッド ローカル ストレージ) は、スレッドのリソース プールを保存するために PHP7 で使用されます。 simple 簡単に言うと、__thread はグローバル変数の識別に使用されます。そのため、このグローバル変数はスレッド専用であり、異なるスレッドによる変更は相互に影響しません。

  • 関数のパラメータと戻り値の型を指定する

PHP7 では、関数のパラメータと戻り値の型を指定できます。

  • zval 構造の変更

PHP7 は、参照カウントを特定の value に転送します。これはより合理的です。さらに、zval 構造体のサイズも 24 バイトから 16 バイトに削減されており、これは PHP7 がシステム リソースの使用量を削減できる最適化ポイントです。

  • 例外処理

PHP5.x の多くの操作は直接エラー エラーをスローしますが、PHP7 では、ほとんどのエラーが例外スローに変更されます。このようにして、try catch を通じてキャプチャできます。

  • HashTable の変更

PHP7 の HashTable (HashTable##) には非常に大きな変更があります。 # 構造体 サイズが 72byte から 56byte に削減され、同時に配列要素 Bucket 構造体も 72byte から 32byte に削減されます。

  • Executor

は PHP7 でパラメータを渡す方法を採用しなくなりましたが、

execute_dataopline ストレージはレジスタを通じて実行されるため、パラメータの受け渡しによる頻繁なスタック操作が回避されると同時に、レジスタはメモリよりも高速にアクセスされます。

  • 新しいパラメータ解析メソッド

PHP5.x は

zend_parse_parameters() を通じて関数パラメータを解析します。PHP7 は別のメソッドで保持します。元の方法と同じですが、新しい解析方法の方が高速です。

関連する推奨事項:

PHP7 新機能の紹介

PHP7 新機能の紹介

以上がphp7の新機能のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。