PHP:使用include文件中的全局变量


PHP: Use global variables from include file

有很多类似的问题,但我无法解决:我尝试在一个包含文件中使用全局变量,如下所示:

included.php:

<?php
  function some_function()
  {
     $GLOBALS['username'] = $_SERVER["REMOTE_USER"];
  }
?>

first.php:

<?php
  include 'included.php';
  some_function()
  echo '<p>Hello ' . $GLOBALS['username'] . '!'</p>'
?>

second.php:

<?php
  include 'included.php';
  echo '<p>Hello ' . $GLOBALS['username'] . '!'</p>'
?>

first.php的输出运行良好,但在second.php中出现了一个错误:

注意:未定义的索引:第36行上/var/www/students/reservations.php中的student_firstname

因此,我的目标是在整个项目中使用全局变量"username",我不想每次都调用some_function(),因为SQL查询中有更多的变量,所以这会花费太长时间。

有什么好方法可以做到这一点吗?或者你能推荐我另一种方法吗?非常感谢。

有这样一个关键字global用于此目的。但这被认为是一种非常糟糕的做法,违反了封装等

$username = "Test" ;
function some_function(){
  global $username ;  //Put a global variable into current space.
  echo $username ;    //Now you can access the global variable.
}

附言:学会将变量作为参数传递到函数中,因为这会让你的生活变得非常轻松。

您可以使用PHP会话,例如,在你的索引页面上有代码;

<?PHP  
session_start();
$_SESSION['username']=$_SERVER["REMOTE_USER"];
?>

然后在你所有页面的顶部,你将需要放置;

<?PHP  
session_start();
?>

标签上方。

然后你可以通过简单的调用用户名

<?PHP echo $_SESSION['username']; ?> and that will display their username.

来源:做了3年PHP/HTML/CSS开发人员。