为什么我无法访问php文件中设置的变量

时间:2016-08-24 02:10:54

标签: php scope

我有两个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中声明的变量,只看到传递给该函数的变量。

1 个答案:

答案 0 :(得分:0)

您需要使用全局关键字让PHP知道 $ success 是一个全局变量。

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