0

PHPを使用して画像ギャラリーを構築しています。私が使用しているコードは次のようなものです:

function ImageBlock() {
    $dir = 'img-gallery';
    $images = scandir($dir);
    $classN = 1;
    foreach ($images as $image) {
        if ($image != '.' && $image != '..') {
            echo '<img class="image' . $classN . '" src="img-gallery/' . $image . '" width="300px" 
                  height="300px">';
        }
        $classN++;
    }
}

この関数を別のファイルで呼び出すと、機能します。私の質問は、以下の cose を使用して、変数を関数外に宣言する場合です...もう機能しません:

$dir = 'img-gallery';
$images = scandir($dir);

function ImageBlock() {
    $classN = 1;
    foreach ($images as $image) {
        if ($image != '.' && $image != '..') {
            echo '<img class="image' . $classN . '" src="img-gallery/' . $image . '" width="300px"  
        height="300px">';
        }
        $classN++;
    }
}

外部で宣言された変数は、私の知る限りグローバル スコープを持つ必要があり、関数内からアクセスできない必要があります。そうじゃない?

4

1 に答える 1

2

PHP は JavaScript ではありません。グローバル名前空間の関数は、明示的に指定しない限り、関数内では使用できません。これを行うには、次の 3 つの方法があります。

パラメータとして渡す(推奨)

function ImageBlock($images){

globalキーワードを使用する(強くお勧めしません)

function ImageBlock(){
    global $images

$GLOBALSスーパーグローバルを使用する(強くお勧めしません)

function ImageBlock(){
    $images = $GLOBALS['images'];
于 2013-09-22T16:32:24.257 に答える