ホームページ  >  記事  >  PHP7.2バージョンの性能紹介

PHP7.2バージョンの性能紹介

小云云
小云云オリジナル
2018-05-14 13:49:5811846ブラウズ

この記事では主に PHP7.2 バージョンのパフォーマンスを詳しく紹介し、皆様が PHP7.2 をより明確に理解できるように願っています。

1. 下位互換性のない変更

コア:

  • 閉じられたリソースの場合、gettype()関数が返されます。 リソース(クローズ済み) 、以前の 不明なタイプ を置き換えます。

  • __PHP_Incomplete_Classクラスオブジェクトの場合、is_object()関数はtrueを返します。

  • Netware OS のサポートを削除しました。

  • 配列型がオブジェクト型((object)またはsettype())に変換されると、整数キーが属性名に変換される問題が修正されます。属性名の問題として、以前のバージョンでは数値キーを使用できませんでした。

  • オブジェクト型が配列型((array)またはsettype())に変換されるとき、およびオブジェクトのプロパティが配列にマッピングされるとき(get_object_vars( ))、整数属性は数値キーに変換され、以前のバージョンで整数属性にアクセスできなかった問題が修正されます。

  • 未定義の定数への修飾されていない参照は、以前の通知レベルを置き換えて警告レベルのエラーを引き起こし、それ以降のバージョンではエラー レベルのエラーになります。

  • サポートされる Windows の最小バージョンは、Windows 7 および Windows Server 2008 R2 です。

  • ネイティブのtrait属性値の互換性チェック動作をキャンセルします。

  • objectはクラス名として使用されません。

BcMath

  • 関数はfmod()関数と同じです、bcmod()関数はモジュールをキャンセルしますo 操作 (% )、つまり10 進数値 一部を切り捨てて整数に変換します。例: bcmod('4', '3.5') は 1 ではなく 0.5 を返します。

ハッシュ

  • hmac()hmac_file()hash_pbk df2()hash_init() (オプションパラメータは HASH_HMAC)、これらの関数は非暗号化ハッシュ関数をサポートしなくなります。

JSON

  • json_decode()関数の2番目のパラメータassocがnullの場合、オプションはオプションでJSON_OBJをサポートしますECT_AS_ARRAYが有効になります。以前のバージョンでは、このパラメータは無視されました。

Session

  • 関連コードを削除しました。「!」は$_SESSIONで使用できますキー名に

  • session

    は、セッション状態を正しく管理し、コードに問題がある場合に無効な操作を禁止するために使用されます。残念ながらこの問題が発生した場合は、コードに問題があることを意味します。これらの関数は、正しいセッション ステータスを設定または返すために使用されます。

  • session_unset()session_write_close()/session_commit()session_abort() session_reset()、これらの関数は値を返しません返されるブール値になります。空のパラメータを許可し、これらの空のパラメータをチェックします。

  • session_start()session_set_cookie_params()session_name()session_module_name() session_set_save_handler()session_regenerate_id( )session_cache_limiter()session_cache_expire()session_unset()session_destroy() session_write_close()/session_commit() session_reset()、これらの関数は無効なセッション ステータスと http ヘッダー ステータスを無効にし、正しいブール値または数値を返します。

  • session.namesession.save_pathsession.cookie_lifetimesession.cookie_pathsession.cookie_domainセッション。 Cookie_httponlySession.cookie_secureSession.use_cookiesSession.use_only_CookiesSession.use_mode er_check Session.cache_limiter セッション.cache_expiresession.lazy_writesession.save_handlersession.serialize_handlersession。 session.gc_piorsession.gc_maxlifetime 、これらの ini 値の設定は ini_set() 関数によって正常に呼び出される必要があり、無効な ini 変更操作は成功しません。

    セッション管理(
  • session_start()

    )ができるため、E_ERRORレベルのエラーメッセージの一部がE_WARNINGレベルに変換されます。

    無効で役に立たないセッションでセッションが初期化されることはなくなります
  • ヘッダー情報が送信されると、この時点で新しい ini 値の設定は無効になります (

    session_name( 経由) )session_module_name()session_save_path()session_cache_limiter()、およびsession_cache_expire()機能)。

    これらの正しい動作は、cli コマンドラインモードでの管理セッションの状態に影響を与えます。 Web アプリケーションと同様に出力バッファリングを使用すると、cli スクリプトの問題が解決されます。


Standard

バージョン 7.1 以降、64 ビットマシン上の同じシードに対する

mt_rand()

rand()バージョン 7.1 乱数を生成順序は異なる場合があります。

2. 新機能

Core

    メソッドとインターフェイスをオーバーライドする場合、そのパラメーターの型は省略されます。これは、リスコフ平衡原理のパラメータ タイプの反変に従います。
  • 継承された抽象クラスが、継承された抽象クラスの抽象メソッドをオーバーライドできるようにします。

  • グループ化された名前空間で末尾のカンマを許可します。

  • オブジェクトタイプの注釈が許可されます。

DBA

  • LMDB バックエンドのサポートを実装しました。

JSON

  • json_encode()json_decode()のサポートを追加しましたJSON_INVALID_IGNOREJSON_INVALTD_UTF8_SUBSTITUTEのサポート、以前の無効なタイプの UTF-8 エンコーディングを置き換えます。

OCI8

  • Oracle データベースの透過的アプリケーション フェイルオーバー (TAF) のサポートを追加しました。

PCRE

  • ローカルのPCRE_DUPNAMESオプションを変更するための内部オプション(j)を追加しました。

Sodium

  • 新しい暗号拡張機能。

SQLite3

  • は、BLOBの書き込みを実装します。

Standard

  • libargon2 で PHP をコンパイルする場合、簡素化されたハッシュ パスワード API が Argon2 をサポートするように更新されました。

  • Windowsプラットフォームはproc_nice()関数をサポートしています。

Zip

  • 読み取り/書き込み暗号化アーカイブ、libzip 1.2.0に依存、新しいメソッド: ZipArchive::setEncryptionName($name, $method[,言葉] ); ZipArchive:: setEncryptionIndex($index, $method[,$password]); 新しい定数: ZipArchive:: EM_AES_128 ZipArchive:: EM_AES_256

  • zip ストリーム コンテキストから「パスワード」を受け入れます。

  • ZipArchive は可算性を実装し、

    ZipArchive::count() メソッドを追加します。

3. SAPI モジュールの変更点

4. 非推奨の機能

以下は、php8.0 バージョンで非推奨となる機能です。

Core

  • プロファイル追跡エラーは破棄されます。

  • __autoload()は非推奨となり、代わりにspl_autoload_register()を使用します。

  • (unset)は、unset($var)の言語構造には影響しません。

  • create_function()関数は非推奨となり、代わりに匿名関数を使用します。

  • each()関数構造は放棄され、foreach()ループに置き換えられます。

Exif

  • read_exif_data()は非推奨になる予定です。代わりにexif_read_data()を使用してください。

GD

  • png2wbmp()jpeg2wbmp() は非推奨になります。

GMP

  • gmp_random()は非推奨になります。代わりにgmp_random_bits()または()を使用してください。

Intl

  • INTL_IDNA_VARIANT_2003は、INTL_IDNA_VARIANT_UTS46を優先して非推奨になりますと交換します。

Mbstring

  • mbstring.func_overloadの設定ファイルは非推奨になります。

Standard

  • 引数なしでparse_str()を呼び出すことは非推奨になります。

  • 文字列パラメーターを使用したassert()の呼び出しは非推奨となり、代わりに正規表現を使用します。

5.

Standard

  • PASSWORD_ARGON2Iに設定した場合password_hash() は Argon2 ハッシュを生成できます。

  • PASSWORD_ARGON2I を使用する場合、デフォルトで次のオプションが設定される場合があります: memory_costtime_cost。これらのオプションのデフォルト値は PASSWORD_ARGON2_DEFAULT_MEMORY_COST です。設定されていない場合、デフォルトは PASSWORD_ARGON2_DEFAULT_TIME_COST および PASSWORD_ARGON2_DEFAULT_THREADS です。

  • password_verify() は Argon2 ハッシュを検証できます。

  • password_get_info()password_needs_rehash() は Argon2 ハッシュを受け入れることができます。

  • mail()/mb_send_mail()は配列$extra_headerを受け入れます。配列パラメータは RFC 2822 に対してチェックされます。 配列形式: php $extra_headers = [ 'ヘッダー名' => 'ヘッダー値', '複数' => ['1 つのヘッダー', '別のヘッダー'], 'Multiline' = "FirstLinern SecondLine", ];

  • 無効なパラメータが渡されると、count()関数は警告警告をスローします。

  • ビッグエンディアンとリトルエンディアンのバイトオーダーでは、pack()unpack()はfloat型とdouble型をサポートします。

  • number_format() 関数は、ゼロ値に負の符号が含まれていないことを保証します。

XML

  • utf8_encode()utf8_decode()関数は文字列として標準拡張に移動されました。

6. 新しい関数

Core

  • を追加しましたstream_istty()

  • sapi_windows_vt100_support()を追加しました。

DOM

  • DomNodeListはCountableを実装し、DomNodeList::count()を追加します。

  • DOMNamedNodeMapはCountableを実装し、DOMNamedNodeMap::count()を追加します。

FTP

  • ftp_append()を追加しました。

GD

  • imagesetclip()imagegetclip()を追加しました。

  • imageopenpolygon()を追加しました。

  • imageresolution()を追加しました。

  • imagecreatefrombmp()imagebmp() を追加しました。

ハッシュ

  • hmac_algos()を追加しました。

Mbstring

  • mb_chr()mb_ord()が追加されました。

  • mb_scrubを追加しました。

OCI8

  • oci_register_taf_callback() oci_unregister_taf_callback( ) Oracle データベースの透過的アプリケーション フェイルオーバー (TAF) のサポート。

ソケット

  • が追加されましたsocket_addrinfo_lookup()socket_addrinfo_bind() および socket_addrinfo_explain()

SPL

  • spl_object_id()を追加しました。

  • 7. 新しいクラスとインターフェイス

8. 拡張機能と SAPI を削除しました

Mcypt

    非推奨の mcrypt 拡張機能は PECL に移動されました。
  • libmcrypt は 2007 年以降メンテナンスされていないため、この拡張機能の継続使用は推奨されません。

  • 9. 拡張機能へのその他の変更

EXIF

    次の形式の exif タグのサポートを追加しました: Samsung、DJI、Panasonic、Sony、Pen税金、ミノルタ、シグマ/フォビオン、AGFA、京セラ、リコー、エプソン。
  • exif_read_data()
  • exif_t​​ humbnail() は、最初のパラメータとしてストリームを渡すことをサポートしています。

    GD

  • --enable-gd-native-ttf設定オプションを削除しました。

  • imagegd()
  • は、以前のパレットへの変換を置き換えて、トゥルーカラー イメージをトゥルーカラー イメージとして保存します。 システム libgd でコンパイルする場合、

  • magealias()
  • もサポートされます。

    Mbstring

    mb_check_encoding()
  • は、配列パラメータを受け取り、そのキーと値を再帰的にチェックします。

  • mb_convert_encoding()
  • は、値のエンコーディングを再帰的に変換できる配列パラメータを受け入れます。

PDO_OCI

  • --with-pdo-ociの構成構文はOracleクライアントでは使用できなくなります。

pdo_sqlite

  • sqlite3_prepare_v2()sqlite3_close_v2()を使用します 以前の機能を置き換えます。

10. 新しいグローバル定数

Core

  • PHP_FLOAT_DIG

  • PHP_FLOAT_EPSILON

  • PHP_FLOAT_MIN

  • PHP_FLOAT_MAX

  • PHP_OS_FAMILY

Fileinfo

  • FILEINFO_EXTENSION

GD

  • IMG_EFFECT_MULTIPLY

  • IMG_BMP

PCRE

  • PREG_UNMATCHED_AS_NULL

標準:

  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

  • PASSWORD_ARGON2_DEFAULT_TIME_COST

  • PASSWORD_ARGON2_DEFAULT_THREADS

  • PASSWORD_ARGON2I

11. INI ファイル処理の変更

sql.safe_ モード

  • この INI オプションは削除されました。

realpath_cache_size

  • デフォルトは 4096k です。

opcache.fast_shutdown

  • この INI オプションは削除されました。 fast_shutdown 処理のバリアントが PHP カーネルに統合されており、運用環境ではデフォルトで有効になります。

12. Windows のサポート

  • VT100 コンソール モードをサポートします。

13. その他の変更点

コンパイルシステム

  • autoconf の最小サポートバージョンは 2.64 です。

関連する推奨事項:

Win10 に IIS、MySQ、nginx、php7.1.7 をインストールするにはどうすればよいですか?

PHP7の新機能紹介

PHP7のパフォーマンスを倍増させる鍵を詳しく解説

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