-1

有很多类似的问题,但我无法让它工作:我尝试在这样的包含文件中使用全局变量:

包含的.php:

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

第一个.php:

<?php
  include 'included.php';
  some_function()

  echo '<p>Hello ' . $GLOBALS['username'] . '!'</p>'
?>

第二个.php:

<?php
  include 'included.php';

  echo '<p>Hello ' . $GLOBALS['username'] . '!'</p>'
?>

first.php 的输出工作正常,但在 second.php 中有一个错误:

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

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

有没有很好的方法可以做到这一点,或者你能推荐我另一种方法吗?谢谢!

4

2 回答 2

0

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

$username = "Test" ;

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

PS 学习将变量作为参数传递给函数,因为它会让你的生活变得非常轻松。

于 2013-09-02T07:58:54.637 回答
-1

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

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

然后在您需要放置的所有页面之上;

<?PHP  
session_start();
?>

标签上方。

然后你可以简单地调用用户名

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

资料来源:从事 PHP/HTML/CSS 开发人员 3 年。

于 2013-09-02T08:25:03.270 回答