0

所以我有这个问题我有3个文件,比如

2.php

<?php
$variable = 4;
?>

1.php

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

索引.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

你很困惑includeinclude_once

当您使用后者时,文件加载和变量声明只会发生一次。如果你在方法范围内这样做,它不会在全局范围内再次声明。或相反亦然。

于 2012-06-28T19:41:01.770 回答