12

ご存知のように、global キーワードは、現在扱っている関数内で変数 (またはオブジェクト、配列) を可視化します。

<?php

$some_var = 'some string';

function __test(){
    global $some_var;
    echo $some_var; // some string
}

しかし、一部の開発者は、関数の外でまだ global キーワードを使用していますが、一見しただけでは意味がありません。

さて、問題は: 関数の外で「global」キーワードを使用することに何か意味があるのでしょうか???

4

2 に答える 2

15

ドキュメントから:

関数の外で global キーワードを使用してもエラーにはなりません。ファイルが関数内からインクルードされている場合に使用できます。

基本的に、関数宣言とは別のファイルに関数の中身を入れることができます。これらの内臓は、関数に含まれます。これは、内臓だけを見ると、ユーザーglobalが関数の外側を使用しているという印象を与えますが、実際には、このコードが解釈されると、関数から解釈されます。

$name = "Jonathan";

function doSomething () {
  include( 'functionGuts.php' );
}

functionGuts.phpファイルの内容は次のとおりです。

global $name;
echo "Hello, " . $name;

単独で見ると、実際には次のように使用されている場合でも、関数の外で使用されているfunctionGuts.phpという印象を与えます。global

$name = "Jonathan";

function doSomething () {
  global $name;
  echo "Hello, " . $name;
}
于 2012-04-25T01:06:52.103 に答える
1

関数外の global キーワードは何もしません。ただし、そのファイルは関数内に含まれる場合があります。

私が使用しないもう1つのことは、コードを読みやすく、より構造化することです。関数で global キーワードを使用してアクセスしたい変数は、メイン ファイルで global を使用して宣言しているため、一見しただけでグローバルとしてどこかで参照されていることがわかります。(つまり、他の場所で使用されているため、とにかく名前を変更しないでください... :) )

于 2012-04-25T01:19:54.203 に答える