0

だから私はこの問題を抱えています私は次のような3つのファイルを持っています

2.php

<?php
$variable = 4;
?>

1.php

<?php
class foo {
function bar() {include_once('2.php');}
}
?>

index.php

<?php
include_once('1.php');
$foo = new foo;
foo->bar();
echo $variable;
?>

変数に値がないと表示されるのはなぜですか?私がこれが好きなら

<?php
include_once('1.php');
$foo = new foo;
foo->bar();
include_once('2.php');
echo $variable;
?>

それも機能しません。この方法でのみ

<?php
include_once('1.php');
$foo = new foo;
//foo->bar();
include_once('2.php');
echo $variable;
?>

それはうまくいくでしょう、何か説明はありますか?ありがとう

4

2 に答える 2

0

のスコープは関数$variable内のみですbar()

参照: http: //php.net/manual/en/language.variables.scope.php

于 2012-06-28T19:37:48.847 に答える
0

あなたは混乱includeしていinclude_onceます。

後者を使用する場合、ファイルのロード、つまり変数宣言は1回だけ発生します。また、メソッドスコープ内でこれを行うと、グローバルスコープで2回目に宣言されることはありません。またはその逆。

于 2012-06-28T19:41:01.770 に答える