2016-08-24 76 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); 
} 
相关问题