2011-12-03 53 views
1

我已經包括在我的PHP腳本文件,但由於某些原因,它無法讀取我全局聲明一個變量,因爲包括文件...PHP - 包括文件不能讀取變量

如何我已經安排好了一切:

的包括是在函數內部

變量是全局(注宣稱:即使當我宣佈一個變量前行包括,它無法讀取變量(這個的功能雖然))

所包含的文件讀取的函數變量(換句話說:語句if ($errorcheckonly==true) {}是一個函數裏面包含文件)

可以在任何的這一對,爲什麼它不工作的影響?

代碼示例:

Main file: 
$errorcheckonly = true; //declared here or declared beneath, not both 
function processOrder() { 
$errorcheckonly = true; 
include 'passengersform.php'; //forced to only use error checks 
} 
processOrder(); 

Included file: 
function processtickets() { 
echo '<script language="javascript">alert("'.$errorcheckonly.'");</script>'; 
if ($errorcheckonly==true) { exit; } 
} 
processtickets(); 
+1

請出示你的代碼。如果它很長,請嘗試創建一個能夠再現問題的最小示例。您可能在創建此示例時自己找到解決方案... :-) –

+0

這就是我描述佈局的原因。但是就像你問的那樣,我添加了一段代碼。 :) – laarsk

回答

1

看到這個其他例子

<?php 
    $var = 'test' ; 

    function A () { 
     global $var ; 

     echo $var ; 
    } 

    A () ; 

輸出是test

+0

我現在已經聲明$ errorcheckonly在任何函數之外,使用全局$ errorcheckonly;在包含文件中的函數中,在主文件中的函數中讀取它,謝謝! – laarsk

+0

也可以從一個函數聲明一個全局變量,而不用在該函數之外聲明它? – laarsk

+1

是的,只看第一個例子。 – 2011-12-03 20:34:19

1

看到這個簡單的例子

<?php 
function A () { 
    global $var ; 
    $var = 'test' ; 
} 

A () ; 

function B () { 
    global $var ; 
    echo $var ; 
} 

B () ; 
+0

當我在函數之外聲明它時,默認情況下不是全局變量嗎? – laarsk

+1

@laarsk編號閱讀php文檔以獲取更多關於變量範圍的內容(http://php.net/manual/en/language.variables.scope.php) –

+1

不,但是無論如何,您必須使用全局$ var將在函數中定義你的範圍 – 2011-12-03 20:24:30