PHPの静的静的変数と通常の変数の違い
静的変数と通常の変数の違いは何ですか? PHP を初めて使用する多くの友人にとって、それは簡単ではないかもしれません。今日は、PHP の静的変数と通常の変数の違いを見ていきます。参照することができます
phpの静的静的変数と通常の変数の違い
変数の前にstaticを追加して静的変数(静的変数)を形成します。
静的変数と通常の変数の違いは、非静的グローバル変数のスコープはソースプログラム全体であることです。ソースプログラムが複数のソースファイルで構成されている場合、非静的グローバル変数は各ソースファイルで有効です。 静的グローバル変数はスコープを制限します。つまり、変数が定義されているソース ファイル内でのみ有効であり、同じソース プログラム内の他のソース ファイルでは使用できません。静的グローバル変数のスコープは 1 つのソース ファイルに限定され、そのソース ファイル内の関数でのみ共有できるため、他のソース ファイルでのエラーを回避できます。
静的変数と通常の変数の違い:
静的グローバル変数と通常のグローバル変数の違い: 静的グローバル変数は、他のファイル単位で参照されないようにするために一度だけ初期化されます。
静的ローカル変数の違い変数と通常のローカル変数: 静的ローカル変数は 1 回だけ初期化され、次回は前の結果値に基づいて行われます。
静的関数と通常の関数の違い: 静的関数はメモリ内にコピーを 1 つだけ保持し、通常の関数は 1 つのコピーを保持します。通話ごとにコピーします。
グローバル変数の前にキーワード static を追加すると、グローバル変数はグローバル静的変数として定義されます。
1) メモリ内の場所: 静的記憶領域 (プログラム実行中に静的記憶領域が存在します)
2) 初期化: 初期化されていないグローバル静的変数は、プログラムによって自動的に 0 に初期化されます (自動オブジェクトの値は任意です) 、明示的に初期化されない限り)
3) スコープ: グローバル静的変数は、宣言されているファイルの外部には表示されません。定義の時点からファイルの終わりまで。
静的変数の利点:
は他のファイルからアクセスされず、競合することなく他のファイルを変更するために使用できます。
メモリ内の場所: 静的ストレージ領域
初期化: 初期化されていないグローバル静的変数は、プログラムによって自動的に 0 に初期化されます (明示的に初期化されない限り、自動オブジェクトの値は任意です)
スコープ: スコープはローカル スコープのままです。それを定義する関数またはステートメント ブロックが終了すると、スコープも終了します。
注: static を使用してローカル変数を変更すると、ローカル変数の記憶場所が元のスタックから静的記憶領域に変更されます。ただし、ローカル静的変数はスコープを出た後も破棄されず、プログラムの終了までメモリ内に残りますが、アクセスできなくなります。
static を使用してグローバル変数を変更すると、グローバル変数のスコープが変更されます (グローバル変数が宣言されているファイルの外部には表示されません) が、静的ストレージ領域内にあるそのストレージの場所は変更されません。 。
通常の関数の例:
<?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; /*函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。*/ } ?>
変数 $w3sky を静的として定義するには、コードは次のとおりです:
<?php function Test() { static $w3sky = 0; echo $w3sky; $w3sky++; } //本函数每调用Test()都会输出 $w3sky 的值并加一。 ?>
静的変数は、再帰関数を処理する方法も提供します。再帰関数は、それ自体を呼び出すメソッドです。再帰関数を作成するときは、終了せずに無限に再帰する可能性があるため、注意してください。必ず再帰を中止する方法を用意してください。次の単純な関数は、再帰的に 10 までカウントし、静的変数 $count を使用して停止するタイミングを決定します。 静的変数と再帰関数の例:
<?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?>
注: 静的変数は式として宣言できません。例: static $int = 1。 +2; この方法は間違っていますが、 static $int = 1; の宣言は正しいです。
読んでいただきありがとうございます、皆さんのお役に立てれば幸いです、このサイトをサポートしていただきありがとうございます!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
