php - PHP 变量的全局访问

标签 php

我查看了过去的答案,并被引导相信头文件中分配的 PHP 变量是全局的。我必须 然后做错事。这是我的代码的简化版本:

这是我的 myGlobals.php 文件:

<?php

  $NAMELABEL = "Name";

?>

这是文件index.php,它“需要”myGlobals.php,然后调用第三个php文件中的函数

<?php

   require_once 'myGlobals.php';
   require_once 'DisplayRecords.php'; 

   displayRecords(); 
?>

这是 DisplayRecords.php

<?php

  function displayRecords()
 {
    echo '<table border="1">';
    echo '<tr>';
    echo '<th>' . $NAMELABEL . '</th>';
    echo '</tr>';
    echo "</table>";
  }
?>

这是高度简化的,只有导致错误的代码。

错误消息。我运行时得到的是:

Notice: Undefined variable: NAMELABEL in C:\xampp\htdocs\fbreverse\DisplayRecords.php on line 29

现在,在我更改为全局变量 $NAMELABEL 之前 - 我使用了它并且运行良好:

   echo '<th>Name</th>';

“精细”是指该表已创建,并且它的列上有一个名为 Name 的标题。

注意:在上面的 html 标签周围使用单引号是允许的,如果您使用双引号字符串,则需要使用单引号 在标签中,就像我在 echo '<table border="1">' 中所做的那样——所以我只是保持一致并坚持使用单引号。 将上面的示例更改为

 echo "<th>" . $NAMELABEL . "</th>";

零差异,相同的错误消息,注意: undefined variable :NAMELABEL in C:\xampp\ht........blah blah

为什么不是 $NAMELABEL在函数 displayRecords() 中可见在 DisplayRecords.php 内?

最佳答案

您需要在函数顶部添加...

global $NAMELABEL;

这将使 $NAMELABEL 在您的函数内部可用。

但是全局变量应该最小化。你能重构你的代码吗?

关于php - PHP 变量的全局访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287168/

相关文章:

php - 从数据库中获取 id 并在另一个页面中显示内容

php - 使用 Moodle 上的外部数据库身份验证插件防止本地重复

PHP/GD : Better Gaussian blur

PHP for 不循环所有值

php - 如何从 friend 表中获取 friend 列表以及我 friend 的 friend 数量

javascript - XMLHttpRequest 无法加载文件 :

php查询对数据库中的结果进行排序

php - 更新两个或多个表

php - 将 mysql 结果显示为对象?

php - 在 Windows 上使用 Laravel 5.7 出现 500 服务器错误