ホームページ > バックエンド開発 > PHPチュートリアル > PHPでグローバル変数を定義するにはどうすればよいですか?

PHPでグローバル変数を定義するにはどうすればよいですか?

怪我咯
リリース: 2023-03-10 20:12:02
オリジナル
7841 人が閲覧しました

Global は PHP の特別なコマンドです。皆さんはそれをスーパーグローバル変数と呼んでいます。今日は Global を使用してグローバル学習ノートを定義していることを紹介します

私は PHP の関数変数と変数スコープに慣れていません。グローバルな世界は完全に隔離されており、相互にアクセスすることはできません。
例:

コードは次のとおりです:

$test = 123;
 abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}
ログイン後にコピー

関数内の外部変数にアクセスしたい場合は、これを行う必要があります:

コードは次のとおりです:

$test = 123;
 abc(); //输出123
function abc(){
    global $test;
    echo($test);
}$test = 123;
abc(); //输出123
function abc(){
    global $test;
    echo($test);
}
ログイン後にコピー

しかし、次のように定義するとどうなるでしょうか。次のような関数内のグローバル変数:

コードは次のとおりです:

function abc(){
    global $test;
    $test = 123;
}
abc();
echo($test); //输出123function abc(){
 global $test;
 $test = 123;
}
abc();
echo($test);
ログイン後にコピー

//Output 123

このようにして、関数内で定義された変数に外部からアクセスできます
ユーザー内で custom function では、ローカル関数のスコープが「はじめに」になります。関数内で使用される変数は、デフォルトでローカル関数スコープに制限されます (include および require によってインポートされたファイル内の変数を含む)!
説明: Test_Global は A.php ファイルで定義されていますサードパーティ関数、これは関数は include を使用して $a のグローバル変数を B.php ファイルにインポートします。そのため、$a は Test_Global ローカル関数のスコープに限定されます。そのため、B.php ファイル内の $a のスコープは、代わりに Test_Global 内部にあります。 A.php 全体に影響を与える...
解決策:
1. ローカル関数を取り出します
//A.php ファイル

コードは次のとおりです:

<?php
function Test_Global()
{  
    Test();  
}  
include &#39;B.php&#39;;   //将include 从局部Test_Global函数中移出
$a = 0 ;
Test_Global();
echo $a;
?> 
//B.php 文件
<?php
function Test()
{
    global $a;
    $a =1;
}
?>
ログイン後にコピー

2. 優れたアクセサー

コード:

//A.php ファイル

<?php
include &#39;B.php&#39;; 
$a =0;
Set_Global($a);
echo $a;
?> 
//B.php 文件
<?php
function Set_Global(&$var)
{
    $var=1;
}
?>
ログイン後にコピー

以上がPHPでグローバル変数を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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