php_PHP チュートリアルにおける global static と $GLOBALS の使用法と違い

WBOY
リリース: 2016-07-13 17:14:43
オリジナル
982 人が閲覧しました

この記事は、PHP における global static と $GLOBALS の使用法と違いをまとめて紹介しています。両者の違いを理解する必要がある人は参照してください。

1.global はページ全体で機能します。

例1

コードは次のとおりです コードをコピー

グローバル $var1,$var2;

同名の外部変数の参照であり、変数自体のスコープは関数本体内にあります。これらの変数の値を変更すると、同じ名前の外部変数も当然変更されます。ただし、& を使用すると、その変数は同じ名前の参照ではなくなります。

コードは次のとおりです コードをコピー

$var1 = 1;$var2 = 2;
関数テスト(){
グローバル $var1,$var2
// アクションの範囲は関数本体内です
$var1 = 3;}
テスト();
エコー $var1;
?>

結果は3です。

同じ名前の参照なので

関数本体内で定義された PHP グローバル変数は関数本体外で使用できます。関数本体外で定義されたグローバル変数は関数本体内では使用できません。

コードは次のとおりですコードをコピー次の例を見てください
$glpbal $a; $a=123; 関数 f() { echo $a; }

コードは次のとおりですfunction f() { global $a; $a=123; } f(); // 正しい、2.static は関数とクラス内でのみ機能します。
コードをコピー
を使用できます。

global と $GLOBALS は基本的に同じように使用されますが、実際の開発ではまったく異なります。

global は、関数の実際の外部変数ではなく、関数の外部変数を指すエイリアス変数を関数内に生成します。エイリアス変数が指すアドレスが変更されると、いくつかの予期しない状況が発生します。

例1.

コードは次のとおりですコードをコピー /*

*作者:ajax123
*qq:283400245
*/
クラスの人{
static$name="ajax123";//static は静的属性を宣言します
static$age=25;//static は静的プロパティを宣言します
static$address="Beijing";//static は静的属性を宣言します
関数 Song(){
echo "My name is : ".self::$name."
";//クラス内: self クラスを通じて静的プロパティにアクセスします
echo "I am ".self::$age."
";//クラス内: self クラスを通じて静的プロパティにアクセスします
echo "I live in ".self::$address."
";// クラス内: self クラスを通じて静的プロパティにアクセスします
}
}
echoperson::$name."
";//外部クラス: クラス名 person を通じて静的プロパティにアクセスします
echoperson::$age."
";//外部クラス: クラス名 person を通じて静的プロパティにアクセスします
echoperson::$address."
";//外部クラス: クラス名 person を通じて静的プロパティにアクセスします
?>


$GLOBALS[] は確かに外部変数と呼ばれ、関数内外で常に一貫性があります

例 #1 $GLOBALS の例

コードは次のとおりです コードをコピー

関数テスト() {
$foo = "ローカル変数";

グローバル スコープの $foo をエコーし​​ます: ' . $GLOBALS["foo"] "n";
echo '現在のスコープの $foo: ' . $foo . }

$foo = "コンテンツの例";

テスト();
?>

上記のルーチンの出力は次のようになります:

グローバルスコープの$foo: コンテンツの例

現在のスコープ内の $foo: ローカル変数

http://www.bkjia.com/PHPjc/628908.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628908.html技術記事この記事では、PHP における global static と $GLOBALS の使用法と違いをまとめて紹介します。両者の違いを理解する必要がある人は参照してください。 1.globalはページ全体で動作します。 例 1 コードは次のとおりです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート