-
- function test()
- {
- static $b=0;//静的変数を関数の外で宣言した場合、関数内では使用されません
- $b=$b+1;
- echo $ b;
- }
- test();//このステートメントは $b の値を 1 として出力します
- test();//このステートメントは $b の値を 2 として出力します
コードをコピーします
注: static $b=0 この代入操作は、変数が初めて初期化されるときにのみ実行されます。
付録 A: クラス内の静的メンバーと静的メソッドは、ほとんどの場合、呼び出し時にクラス名または self または親に :xxx を加えたものを使用しますが、その宣言はメソッドの外にあります。
付録 B: js のスコープは次のとおりです: use var aa=‘xxx’; 関数の外で宣言されるものはグローバル変数です (修飾子 var の有無に関係なく)。ローカル変数は関数内で var を使用して宣言され、グローバル変数は var を使用せずに宣言されます。
付録 C: PHP リファレンスについて
PHP リファレンス: 変数、関数、またはオブジェクトの前に &. リファレンスを追加すると、同じ変数の内容に別の名前でアクセスできます。
1. 変数の参照:
-
- $a="ABC";
- $b =&$a;
- echo $a;//ここに出力: ABC
- echo $b;//ここに出力: ABC
- $ b="EFG";
- echo $a;//ここの$aの値がEFGになるのでEFGが出力される
- echo $b;//ここにEFGが出力される
コードをコピー 2.機能の
- function test(&$a)
- {
- $a=$a+100;
- } // bbs.it-home.org
- $b=1;
- echo $b ;//出力 1
- test($b); //ここで関数に渡される $b は、実際には $b の変数の内容が配置されているメモリ アドレスであり、値を変更することで $b の値を変更できます。関数内の $a の
- echo "
"; - echo $b;//出力 101
コードをコピーします3.
- function &test()
- {
- static $b=0;//静的変数を宣言
- $b=$b+1;
- echo $b;
- return $b;
- }
- $a=test();//このステートメントは $b の値を 1 として出力します
- $a=5;
- $a=test();//このステートメントは $b の値を 2 として出力します
- $a=&test();//このステートメントは $b の値を 3 として出力します
- $a=5;
- $a=test();//このステートメントは $b の値を 6 として出力します
-
コードをコピー分析:
$a=test() を使用して取得するものは、実際には関数から返される参照ではありません。 $b には影響せずに、関数の戻り値を $a にコピーするだけです。この通話は通常の通話と変わりません。
Php では、 $a=&test() メソッドは関数の参照を返すと規定されています。彼は、$b 変数のメモリ アドレスと $a 変数のメモリ アドレスが同じ場所を指しました。これは $a=&$b; と同等です
4. 参照をキャンセルする
- $a = 1;
- $b =& $a;
- unset ($a);
- echo $b;
-
コードをコピー分析:
参照の設定を解除すると、変数名と変数の内容の間のバインドが解除されるだけで、内容が破棄され、その値がまだ存在するという意味ではありません。
5. グローバルな引用:
global $var を使用して変数を宣言すると、実際にはグローバル変数への参照が作成されます。
- Global $val <=> $var=&$GLOBALS['var'] ;
-
コードをコピー
6.
オブジェクトのメソッドでは、$this によって呼び出されるオブジェクトが、それを呼び出す参照になります。
注: PHP でのアドレスの指定はユーザー自身によって実装されるのではなく、Zend コアを通じて PHP 参照は「書き込みコピー」の原則を採用します。つまり、書き込み操作が発生しない限り、変数は同じアドレスまたは同じアドレスを指します。オブジェクトはコピーされません。
例:
$a = 1;
$b =$a;
$a と $b はどちらも同じメモリ アドレスを指します。$a と $b が異なるメモリを占有するわけではありません。
ここで $a="dsd" という文を実行すると、$a と $b が指すメモリ データを書き換える必要があると、この時点で zend コアが自動的に判断します。 $b 用の $a のデータ コピーを自動的に生成し、ストレージ用のメモリを再適用します。
PHP 変数スコープと PHP リファレンスについては以上です。皆さんのお役に立てれば幸いです。
|