編輯:我的答案是針對問題的原始版本量身定製的。請注意,下面的答案是基於當時可用信息的答案。
當您使用require()
或include()
時,包含的腳本在與包含文件的行相同的範圍內運行。
考慮以下幾點:
myscript.php
<?php
function init_db() {
require_once("database.inc.php");
}
echo $db_name;
function test() {
global $db_name;
echo $db_name;
}
test();
database.inc.php
<?php
$db_name = "hello";
由於database.inc.php被包括在功能init_db()
,沒有e echo
實際上會輸出任何東西。 $db_name
是功能init_db()
的本地功能。
要解決的是,只需添加global $db_name;
到database.inc.php文件:
database.inc.php思考的require()
或include()
如複製粘貼代碼
<?php
global $db_name;
$db_name = "hello";
它被稱爲。由於您在函數init_db()
內database.inc.php被執行,所以global $db_name;
將允許您在全局設置$db_name
。
`global $ variable;`是標題問題的答案。你必須改寫它,「我怎麼能找到,爲什麼我的代碼不起作用」 – 2011-01-27 10:01:03