2014-09-27 72 views
1

我正在使用php函数文件来设置全局变量的值,但是当我在其他php文件中使用include调用函数时忽略了该值(“functions.php “);如何在调用php函数期间保持变量值

我这样做:

////File1.php//// 

include("functions.php"); 

$data_person = $_POST['data_person'];//here i am getting 'data_person' from a form, it works fine 

receive_DP($data_person);//Here I send the variable 

show_DP();//It shows the values inside $data_person 



////functions.php//// 

$data_person; 

function receive_DP($data_person_array) 
{ 
    global $data_person; 

    $data_person = $data_person_array; 


} 

function show_DP() 
{ 

    global $data_person; 

    echo "name:".$data_person[0]; 
    echo "last name:".$data_person[1]; 
    echo "age".$data_person[2]; 
} 

//then i go to File2.php with a FORM (input submit) and i need to keep the values in $data_person 
//It is like a header, It shows personal info, It is supposed to be the values of this variable 
//are set and they should be always 



////File2.php////  HERE IS THE PROBLEM, I MISSED THE VALUES OF $data_persona 

include("functions.php"); 

show_DP();//It shows nothing, just name:, last name: and age:, but not the the values 

就像我说我来自一个表单标签获得的值,那么我将它们传递给File1.php与$ _ POST得到的值,它工作正常,我调用了这两个函数(receive_DP()和show_DP()),并且它的工作正常,接下来我使用按钮去File2.php,但是当我调用show_DP()函数时,值都消失了。

+0

在会话中存储您的价值,比你可以访问他们任何你想要的地方 – 2014-09-27 04:52:55

+0

我想到了这一点,但我不知道如何使用$ _SESSION(),请快速解释我应该怎么做,谢谢 – 2014-09-27 04:54:25

+0

在哪个文件中获取值,以及您想要访问哪个文件。谢谢回复我我会告诉你 – 2014-09-27 04:55:22

回答

1

如果你希望这些价值观坚持应用广泛,那么你可以使用会话此:

// setter function 
function receive_DP($data_person_array) { 
    $_SESSION['data_person'] = $data_person_array; 
} 

// getter function 
function show_DP() { 
    if(isset($_SESSION['data_person'])) { 
     $data_person = $_SESSION['data_person']; 
     echo "name:".$data_person[0]; 
     echo "last name:".$data_person[1]; 
     echo "age".$data_person[2]; 
    } 
} 

// clear dp values 
function unset_DP() { 
    if(isset($_SESSION['data_person'])) { 
     unset($_SESSION['data_person']) 
    } 
} 

和重要的提醒:你总是需要对那些参与脚本session_start()

+0

@JoseRicardoCiterio重要的是,你必须在PHP的顶部有'session_start()'来使用这个PHP函数文件。我很高兴这有助于,所以第一行的PHP文件'session_start()',然后第二'include'functions.php';' – Ghost 2014-09-27 09:19:02

+0

好吧,但是当我回到上一页浏览器显示“过期文档”,我需要用户能够返回以修改一些输入值 – 2014-09-27 09:23:12

+0

当我从file1.php到file2.php时,$ _SESSION的值被保存,所以我可以在file2.php中显示它,但是当我去回到file1.php浏览器显示 – 2014-09-27 09:25:43

1

为此在file1.php

session_start(); 

$_SESSION['data_person']=$_POST['data_person']; 

$_SESSION['data_person']等于$_POST['data_person'];

,你想,你可以任意访问它,

评论补充:你可以使用session_start() ;在任何文件中都可以访问这个值。谢谢

+0

好吧,但我需要这样做$ data_person = $ _ SESSION ['data_person'] ?,因为我需要使用变量$ data_person – 2014-09-27 05:22:07

+0

它不工作,我在file1php:session_start(); $ _SESSION ['data_person'] = $ _ POST ['data_person'] $ data_person = $ _SESSION ['data_person']; \t receive_DP($ data_person); – 2014-09-27 08:06:41

+0

它在file1.php中正常工作,但不是当我从file2.php调用show_DP()时,它不显示数据,我需要使用变量$ data_person而不是$ _SESSION('data_person'),因为它不是可以舒适的 – 2014-09-27 08:09:51