我如何定义一个可用于所有php文件的变量(如superglobals)

时间:2016-09-12 05:32:48

标签: php global-variables

有没有办法创建/定义一个可用于所有php文件的变量(如superglobals)

  

示例:

     

我在 file1.php $car = ferrari

中定义了一个变量      

然后在 file2.php 中写echo $car;

     

然后输出ferrari

如何在file1.php中定义变量并在file2.php

中访问它

修改

答案很好,但是有另一种选择吗?因为我将在多个目录中有多个php文件,我是否必须为每个目录创建自己的php文件?如果这是唯一的方法,那么我会做它

4 个答案:

答案 0 :(得分:1)

嗨,最好的方法是,

您创建一个名为“defines.php”的.php文件,并确保在每个.php文件中包含该文件。

使你的变量,常量位于该文件中。这样你就可以访问它们了。

其他方法是,您可以将值设置为现有的Global变量。

$_SERVER['car'] = "ferrari"

感谢。

答案 1 :(得分:1)

  • 在项目的根目录中创建init.php。

如果你需要常量变量(所以,你不能编辑它) - 在项目的根目录中创建constants.php。

如果您需要可编辑的变量 - 在项目的根目录中创建globals.php。

<强> constants.php

<?php
define('CAR', 'ferrari');

<强> globals.php

<?php

class Globals
{
  public static $car = 'ferrari';
}

constants.php globals.php 添加到 init.php

<?php
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'constants.php');
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'globals.php');

init.php 包含在php源代码中。

<?php
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'init.php');

如果您需要长期使用变量,而不仅仅是一个页面加载,那么请使用会话。 (用户登录,设置,......)

<?php
$_SESSION['car'] = 'ferrari';

在你的php源代码中,你可以使用常量和全局变量:

示例:

<?php
echo CAR; //ferrari

echo Globals::$car; //ferrari

Globals::$car = 'renault'; //set your global variable

echo Globals::$car; //renault

<强>参考文献:

  

http://php.net/manual/en/language.oop5.static.php

     

http://php.net/manual/en/function.define.php

     

http://php.net/manual/en/function.dirname.php

     

http://php.net/manual/en/reserved.variables.session.php

答案 2 :(得分:0)

创建一个常量文件并将其包含在您要访问这些常量的文件中。

将文件包含为

include 'file_path';

答案 3 :(得分:0)

您可以使用SESSIONinclude概念。

1)使用SESSION

<强> file1.php

session_start();
$_SESSION['car'] = 'ferrari';

<强> file2.php

session_start();
echo $_SESSION['car'];  //Result: ferrari

2)使用include

<强> file2.php

include 'file1.php';
echo $car //Result: ferrari