PHP 変数スコープの学習ノートの共有_PHP チュートリアル
変数スコープとは、変数がページと関数間で相互に使用できるかどうかを指します。その動作範囲は何ですか?PHP 変数の使用範囲についての勉強メモをいくつか紹介します。
PHPの変数のスコープはPHPマニュアルに記載されています
ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトではローカル関数のスコープに制限されます。例:
コードは次のとおりです | コードをコピー |
$a = 1; /* グローバルスコープ */ 関数テスト() テスト(); |
echo ステートメントは変数 $a のローカル バージョンを参照しており、このスコープ内の値が割り当てられていないため、このスクリプトからの出力はありません。 PHP のグローバル変数は C 言語とは少し異なることに気づくかもしれませんが、C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。
PHP の変数には主に、組み込みスーパーグローバル変数、一般変数、定数、グローバル変数、静的変数などが含まれます
■一度宣言した定数はグローバルに参照可能、つまり関数内外で使用可能ですが、これは1つのページ(includeやinclude_onceでインクルードしたPHPスクリプトも含む)に限定されており、他のページでは使用できなくなります。 。
■スクリプト内で宣言されたグローバル変数はスクリプト全体で参照できますが、関数内では参照できません。関数内の変数がグローバル変数と同じ名前の場合、関数内の変数が優先されます。
■関数内で使用される変数がグローバル変数として宣言されている場合、その名前はグローバル変数の名前と一致している必要があります。この場合、関数内で関数の外にあるグローバル変数を使用することで、前の問題を回避できます。問題は、関数内の変数が外部グローバル変数と同じ名前を持ち、外部変数をオーバーライドします。
■関数内で作成され、static として宣言された変数は、関数の外部からは見ることができませんが、関数の複数回の実行中に値を維持できます。最も一般的な状況は、関数の再帰実行中です。
■関数内で作成された変数は関数に対してローカルであり、関数が終了すると存在しなくなります。
スーパーグローバル変数の完全なリストは次のとおりです:
■.$_SERVERサーバー環境変数配列
■.$_POST POSTメソッド経由でこのスクリプトに渡される変数の配列
■.$_GET GETメソッド経由でこのスクリプトに渡される変数の配列
■.$_COOKIE クッキー変数配列
■.$_FILES ファイルアップロードに関する変数の配列
■.$ENV 環境変数配列
■.$_REQUEST すべてのユーザー入力変数配列には、$_GET $_POST $_COOKIE に含まれる入力内容が含まれます
■.$_SESSIONセッション変数配列
1. ローカル変数
コードをコピー | |||||
$x=4; 関数 assignx(){ $x=0; printf("関数内の $x は %d ",$x); } assignx(); printf("関数外の $x は %d ",$x);
実行結果は 機能外の$は4
|
コードは次のとおりです | コードをコピー |
関数 x10($value){ $値=$値*10 $value を返す; } |
これらの関数パラメータは、宣言されている関数内でアクセスして操作できますが、関数の実行が終了するとパラメータは破棄されることに注意してください。
3. グローバル変数
グローバル変数はプログラム内のどこからでもアクセスできます。ただし、グローバル変数を変更するには、変数を変更する関数内でグローバル変数として明示的に宣言する必要があります。キーワード GLOBAL が変数の前に追加されている限り、それはグローバル変数です。既存の変数の前に GLOBA キーワードを置くと、PHP に同じ名前の変数を使用するように指示されます。
グローバルの代わりに $GLOBALS を使用してください
コードは次のとおりです | コードをコピー |
$a = 1; |
$GLOBALS 配列では、各変数は要素であり、キー名は変数名に対応し、値変数の内容は対応します。 $GLOBALS はスーパーグローバル変数であるため、$GLOBALS はグローバル スコープ内に存在します。次の例は、スーパーグローバル変数の使用を示しています:
例 12-3. スーパーグローバル変数とスコープを示す例
コードは次のとおりです | コードをコピー |
関数test_global() |
静的変数を使用する
変数スコープのもう 1 つの重要な機能は、静的変数です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。以下の例を見てください:
例 12-4. 静的変数の必要性を示します
コードは次のとおりです | コードをコピー |
functionTest() |
この関数は、$a の値を 0 に設定し、呼び出されるたびに「0」を出力するため、あまり役に立ちません。関数が終了すると変数 $a は存在しないため、変数を 1 つインクリメントする $a++ は効果がありません。このカウント値を失わないカウント関数を作成するには、変数 $a を静的として定義します:
例 12-5. 静的変数の使用例
関数 Test()
{
静的 $a = 0;
エコー $a;
$a++;
}
?>
これで、Test() 関数を呼び出すたびに $a の値が出力され、1 ずつ増加します。
静的変数は、再帰関数を処理する方法も提供します。再帰関数は、それ自体を呼び出す関数です。再帰関数を作成するときは、無限に再帰する可能性があるので注意してください。再帰を終了する適切な方法があることを確認する必要があります。静的変数 $count を使用して、いつ停止するかを決定し、再帰的に 10 までカウントするこの単純な関数を考えてみましょう:
例 12-6. 静的変数と再帰関数
コードは次のとおりです | コードをコピー |
関数 Test() |
注: 静的変数は、上の例のように宣言できます。これを宣言内の式の結果に代入すると、解析エラーが発生します。
例 12-7. 静的変数の宣言
コードは次のとおりです | コードをコピー |
関数 foo(){ |
友人からグローバル静的変数について質問されたことに注意してください。phpにはグローバル変数などというものはありません
php はインタープリター言語ですが、static 修飾子が付いていますが、その意味は .Net とはまったく異なります。
クラス内の変数が静的として宣言されている場合でも、この変数は現在のページレベルのアプリケーション ドメインでのみ有効です。
2. 変数のスコープを理解する。
メソッド外で宣言された変数にはメソッド本体内ではアクセスできません。
例:
コードは次のとおりです | コードをコピー | ||||
$url = "www.bKjia.c0m";
関数 _DisplayUrl()
} _DisplayUrl メソッドは、変数 $url がメソッド本体 _DisplayUrl でアクセスできないため、結果を表示しません。DisplayUrl メソッドなど、$url の前に global を追加するだけです。 メソッド本体で定義されたグローバル変数は、メソッドの外部からアクセスできます:
|
http://www.bkjia.com/PHPjc/632648.html

ホット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 にアップグレードする方法について説明します。

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

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
