在整个网页中存储一次PHP变量。

时间:2016-06-04 02:57:05

标签: php json

所以我有一个名为json的变量来存储所有的json。我想在网站上加载一次,并能够通过我拥有的任何PHP函数使用它。所以,假设我将这行代码放在index.php的开头:

  $json = file_get_contents('http:/xxxxxxxx/bp.json');

我希望能够在页面中的其他位置使用此变量,而不会再次加载它。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以将变量存储在PHP会话中,并在应用程序的任何位置调用它。

$_SESSION["favcolor"] = "green";

http://www.w3schools.com/php/php_sessions.asp

最佳做法是在退出应用程序时销毁和/或清除所有会话变量。

答案 1 :(得分:1)

1)使用全局变量

<?php
$myVar = 1;
function myFunction()
{
    global $myVar;
    $myVar  = 2;
} 

myFunction();
echo $myVar; //will be 2

include 'another.php'; //you can use $myVar in another.php too.
?>

variables PHP manual

2)使用Cookie

如果您希望从任何浏览器窗口访问您的变量,或者在加载其他页面后,您必须使用COOKIES,因为HTTP是无状态的。这些cookie可以通过javascript访问,因为它们存储在客户端浏览器中,可以被客户端访问。

<?php 
setcookie("myVar","myValue",time()+86400);
/*
   86400 is time of cookie expires. (1 day = 86400)
*/
?>


<?php 
/* 
   Getting cookie from anywhere 
*/
$myVar = $_COOKIE["myVar"];
echo $myVar;
?>

cookies PHP manual

3)使用会话

将变量存储在服务器端的最佳方法是使用HTTP_SESSION

直接使用cookie。
<?php
/* 
   Start a session. 
   Call this line top of every page you want to use session variables 
*/
session_start();
// set variable
$_SESSION["myVar"] = "value";
?>

<?php
session_start();
// Access session variables from another php.
$myVar = $_SESSION["myVar"];
?>

sessions PHP manual

答案 2 :(得分:0)

一种简单的方法,您可以使用Superglobals

  

Superglobals - Superglobals是内置变量,在所有范围内始终可用

我认为你必须使用supergloabls变量,比如$ _SERVER,$ _ GET,$ _ POST等,而supergloabls变量也包括$ GLOBALS。

什么是$GLOBALS

  

注意:变量可用性   与所有其他超级全球不同,$ GLOBALS基本上始终以PHP形式提供。

所以你可以这样做

  1. 从json文件中获取数据
  2. 将数据分配给$ GLOBALS
  3. 用户$ GLOBALS变量而不是$ json