2014-09-27 79 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