有很多类似的问题,但我无法让它工作: 我尝试在包含文件中使用全局变量,如下所示:
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查询有更多的变量,所以这需要太长时间。 / p>
有没有一种很好的方法可以做到这一点,或者你能用另一种方式推荐我吗? 谢谢!
答案 0 :(得分: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.
}
P.S。学会将变量作为参数传递给函数,因为它会让你的生活变得非常轻松。
答案 1 :(得分:-1)
您可以使用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开发人员。