如何在调用php函数期间保持变量值
我正在使用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()函数时,值都消失了。
如果你希望这些价值观坚持应用广泛,那么你可以使用会话此:
// 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()
。
@JoseRicardoCiterio重要的是,你必须在PHP的顶部有'session_start()'来使用这个PHP函数文件。我很高兴这有助于,所以第一行的PHP文件'session_start()',然后第二'include'functions.php';' – Ghost 2014-09-27 09:19:02
好吧,但是当我回到上一页浏览器显示“过期文档”,我需要用户能够返回以修改一些输入值 – 2014-09-27 09:23:12
当我从file1.php到file2.php时,$ _SESSION的值被保存,所以我可以在file2.php中显示它,但是当我去回到file1.php浏览器显示 – 2014-09-27 09:25:43
为此在file1.php
session_start();
$_SESSION['data_person']=$_POST['data_person'];
$_SESSION['data_person']
等于$_POST['data_person'];
,你想,你可以任意访问它,
评论补充:你可以使用session_start() ;在任何文件中都可以访问这个值。谢谢
好吧,但我需要这样做$ data_person = $ _ SESSION ['data_person'] ?,因为我需要使用变量$ data_person – 2014-09-27 05:22:07
它不工作,我在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
它在file1.php中正常工作,但不是当我从file2.php调用show_DP()时,它不显示数据,我需要使用变量$ data_person而不是$ _SESSION('data_person'),因为它不是可以舒适的 – 2014-09-27 08:09:51
在会话中存储您的价值,比你可以访问他们任何你想要的地方 – 2014-09-27 04:52:55
我想到了这一点,但我不知道如何使用$ _SESSION(),请快速解释我应该怎么做,谢谢 – 2014-09-27 04:54:25
在哪个文件中获取值,以及您想要访问哪个文件。谢谢回复我我会告诉你 – 2014-09-27 04:55:22