ホームページ >バックエンド開発 >PHPチュートリアル >PHP の static キーワードが変数と関数に与える影響_PHP チュートリアル
php では、static は関数を定義できます。では、関数または変数の前に static を追加すると、関数と変数にどのような影響があるでしょうか。
1) グローバル変数 (外部変数) の記述の前に static を付けて、静的グローバル変数を構成します。グローバル変数自体は静的格納メソッドであり、静的グローバル変数も当然静的格納メソッドです。 どちらも保存方法に違いはありません。両者の違いは、非静的グローバル変数の有効範囲がソースプログラム全体であることです。ソースプログラムが複数のソースファイルで構成されている場合、非静的グローバル変数は各ソースファイルで有効になります。 静的グローバル変数はスコープを制限します。つまり、変数が定義されているソース ファイル内でのみ有効であり、同じソース プログラム内の他のソース ファイルでは使用できません。静的グローバル変数のスコープは 1 つのソース ファイルに限定され、そのソース ファイル内の関数でのみ共有できるため、他のソース ファイルでのエラーを回避できます。
2) 上記の分析から、ローカル変数を静的変数に変更すると、その保存方法が変更され、その有効期間が変更されることがわかります。グローバル変数を静的変数に変更すると、そのスコープが変更され、その使用範囲が制限されます。
3) 静的関数のスコープは、このファイル内のみで通常の関数とは異なります。現在のソースファイル内でのみ使用される関数は内部関数(static)として宣言し、内部関数を現在のソースファイル内に記述して定義する必要があります。現在のソースファイルの外で使用できる関数については、ヘッダーファイルに記述する必要があります。これらの関数を使用するソースファイルには、このヘッダーファイルが含まれている必要があります
。
PHP5.3.0 以降では、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード self、parent、または static にすることはできません。
例 #1 静的メンバーのコード例
コードは次のとおりです | コードをコピー | ||||||||||||
パブリック関数 staticValue() { クラス Bar は Foo を拡張します
$foo = 新しい Foo();
print $classname::$my_static . " "; // PHP 5.3.0 以降では動的に呼び出すことができます
?>
//
}
クラスでの Static キーワードの使用に関して、PHP マニュアルには次の規則が記載されています。
1. クラスのインスタンスを作成せずに直接アクセスできるように、クラスのメンバーまたはメソッドを静的として宣言します。静的メンバー (静的メソッドを除く) には、オブジェクトを通じてアクセスできません。
3. -> 演算子を使用してオブジェクトから静的プロパティにアクセスすることはできません。
質問コード: 次のコード( )の演算結果を記述してください
コードは次のとおりです コードをコピー
http://www.bkjia.com/PHPjc/632692.html 。 |