PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのウィークマップとは何ですか?


弱いマップ PHP7.4で追加されました。キャッシュがオブジェクトエンティティクラスを参照する場合、オブジェクトを削除または削除するために使用できます。収集されたメモリガベージからオブジェクトを回避しないオブジェクトを参照します。 PHP 8では、弱いマップを使用すると、メモリをリークすることなく、オブジェクトにリンクされたランダムなデータを保存できます。

言い換えると、PHP 8のウィークマップは、キーが弱く参照するオブジェクトのグループです。 。ウィークマップはクラスを使用して、キーとして使用できるオブジェクトを作成します。これは、それ以上の参照がない場合にウィークマップを削除および破棄するのに役立ちます。長期的なプロセスでは、メモリリークを回避できるため、最終的にパフォーマンスが向上します。

ウィークマップは自動ガベージコレクションプロセスとして機能すると言えます。変数が削除されるたびに、PHPはそのオブジェクトを参照している変数があるかどうかを確認します。変数が参照していない場合、PHPはそのオブジェクトを安全に削除します。このプロセスはガベージコレクションと呼ばれます 。

例:Weak Maps PHP 8

<?php
   class WeakExample {
      public WeakMap $cache;
      public function __construct() {
         $this->cache = new WeakMap();
      }
      public function getCaching(object $obj) {
         return $this->cache[$obj] ??= $this->computeSomethingExpensive($obj);
      }
      public function computeSomethingExpensive(object $obj) {
         print_r("Object called");
         return rand(1, 100);
      }
   }
   $cacheObject = new stdClass;
   $obj = new WeakExample;

   $obj->getCaching($cacheObject);
   $obj->getCaching($cacheObject);
   print_r(count($obj->cache));

   unset($cacheObject); // unsetting the objects and Weak Maps frees up memory
   print_r(count($obj->cache));
?>

出力

Object called 1 0

  1. PHPファイルとは何ですか?

    拡張子が.PHPのファイルは、ハイパーテキストプリプロセッサコードを含むPHPソースコードファイルです。これらは通常、Webサーバーで実行されているPHPエンジンからHTMLを生成するWebページファイルとして使用されます。 PHPエンジンがコードから作成するHTMLコンテンツは、Webブラウザーに表示されるものです。 WebサーバーはPHPコードが実行される場所であるため、PHPページにアクセスしてもコードにアクセスできませんが、代わりにサーバーが生成するHTMLコンテンツが提供されます。 一部のPHPソースコードファイルは、.PHTML、PHP3、PHP4、PHP5、PHP7、PHP

  2. ファイル インクルージョンと任意のコード実行とは?

    ファイルの組み込みと任意のコードの実行: 今月初め、WordPress で構築された航空券の Web サイトがハッキングされ、数十万人の訪問者の個人データが流出しました。ハッカーがハッキングする理由に関する以前の投稿では、ハッカーがデータを盗んだり、スパム メールを送信したり、ブラック ハット SEO 手法を使用して自社製品をランク付けしたりするなど、ハッカーがハッキングするすべての理由について説明しました (推奨される読み取り – 医薬品ハック) など ハッカーが Web サイトをハッキングする方法を知ることは、ハッカーを防ぐための鍵となります。そのため、以前の記事で WordPress