2016-08-24 44 views
0

我有兩個PHP文件,說爲什麼我不能訪問一個PHP文件中設置的變量

action.php的

require_once 'action_helper.php'; 

storeDataToDb($data); //function from action_helper.php 
logPersistIsPerformed(); //function from action_helper 
echo $success; //variable set in action_helper.php 

action_helper.php

$success = "success"; 


function storeDataToDB($data) { 
    // persist data 
} 

function logPersistIsPerformed() { 
    insertToDB($success); 
} 

我不確定這是否只是一個範圍問題,但我遇到的是當action.php調用在action_helper.php中聲明的函數和變量時,沒有問題。

但是當我從action.php調用action_helper.php中的一個函數,該函數調用在action_helper.php中聲明的變量時,它似乎沒有看到這個成功變量。

在調試過程中,一旦我加載了頁面,我就可以看到來自action和action_helper的所有變量。但是當我進入到action_helper的函數中時,我無法看到在action_helper中聲明的變量,只是傳遞給該函數的變量。

+0

你必須在函數中使用'global $ variable_name'嗎? –

+0

使每個文件成爲一個類,然後通過class-> variable引用該變量 –

回答

0

您需要使用全球關鍵字讓PHP知道$成功是一個全局變量。

function logPersistIsPerformed() { 
    global $success; 
    insertToDB($success); 
} 
相關問題