ホームページ > バックエンド開発 > PHPチュートリアル > PHP の変数型のグローバル スコープとローカル スコープ

PHP の変数型のグローバル スコープとローカル スコープ

WBOY
リリース: 2023-09-13 12:16:01
オリジナル
1050 人が閲覧しました

PHP の変数型のグローバル スコープとローカル スコープ

PHP の変数型のグローバル スコープとローカル スコープには特定のコード例が必要です

PHP では、変数のスコープはグローバル スコープとローカル スコープに分割されます。グローバル スコープ変数はスクリプト内のどこからでもアクセスできますが、ローカル スコープ変数は特定のコード ブロック内でのみアクセスできます。

グローバル変数は関数の外で宣言された変数であり、スクリプト全体で使用できます。ローカル変数は関数内で宣言され、関数内でのみ使用できる変数です。

PHP における変数型のグローバル スコープとローカル スコープの概念を理解するために、いくつかの具体的な例を見てみましょう。

  1. グローバル変数の例:
$name = "John"; // 全局变量

function greet() {
    global $name; // 在函数内部使用全局变量,需要用global关键字声明
    echo "Hello, $name!"; // 输出全局变量的值
}

greet(); // 调用函数输出 "Hello, John!"
echo $name; // 在函数外部也可以访问全局变量,输出 "John"
ログイン後にコピー

上の例では、関数内で # 使用されるグローバル変数 $name を宣言しました。 ##global キーワードによりこれが導入され、関数の内部と外部に出力されます。

    ローカル変数の例:
  1. function greet() {
        $name = "John"; // 局部变量
        echo "Hello, $name!"; // 输出局部变量的值
    }
    
    greet(); // 调用函数输出 "Hello, John!"
    echo $name; // 在函数外部无法访问局部变量,会报错
    ログイン後にコピー
上の例では、ローカル変数

$name を宣言しました。これは、関数効率の内部のみにあります。 。関数の外でこの変数にアクセスしようとすると、エラーが発生します。

グローバル変数が関数内で参照されている場合、グローバル変数の値を直接変更することはできないことに注意してください。関数内のグローバル変数の値を変更する場合は、

global キーワードまたは $GLOBALS 配列を使用する必要があります。

$counter = 0; // 全局变量

function incrementCounter() {
    global $counter; // 使用global关键字引入全局变量
    $counter++; // 修改全局变量的值
}

incrementCounter(); // 调用函数增加全局变量的值
echo $counter; // 输出 "1"
ログイン後にコピー

または、

$GLOBALS 配列を使用してグローバル変数の値を変更します:

$counter = 0; // 全局变量

function incrementCounter() {
    $GLOBALS['counter']++; // 使用$GLOBALS数组修改全局变量的值
}

incrementCounter(); // 调用函数增加全局变量的值
echo $counter; // 输出 "1"
ログイン後にコピー
上記の例を通じて、PHP のグローバル タイプと変数タイプを明確に理解できます。ローカルスコープ。グローバル変数はスクリプト全体で表示されますが、ローカル変数はコードの特定のブロック内でのみ表示されます。この概念を理解することは、明確に構造化され、保守が容易なコードを作成するために重要です。

以上がPHP の変数型のグローバル スコープとローカル スコープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート