Php全局关键字在不同的文件中

时间:2017-03-21 13:17:26

标签: php global

我是php的新手。 我有一个文件用于连接数据库" db_connection.php "。

<?php
  //With constants
  define("DB_SERVER","localhost");
  define("DB_USER","root");
  define("DB_PASS","");
  define("DB_NAME","db_name");    
  $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
  // Test if connection succeeded
  if(mysqli_connect_errno()) {
    die("Database connection failed: " . 
         mysqli_connect_error() . 
         " (" . mysqli_connect_errno() . ")"
    );
  }
?>

我还有一个名为&#34; functions.php &#34;的其他文件。其中我有查询功能

<?php
    function confirm_query($result_set){
        if (!$result_set) {
            die("Database query failed.");
        }
    }

function find_all_subjects(){
    global $connection;
    $query  = "SELECT * ";
    $query .= "FROM subjects ";
    $query .= "WHERE visible = 1 ";
    $query .= "ORDER BY position ASC";
    $subject_set = mysqli_query($connection, $query);
    // Test if there was a query error
    confirm_query($subject_set);
    return $subject_set;
}
?>

我调用函数&#34; main.php&#34;

的主文件
<?php   require_once("db_connection.php"); ?>
<?php   require_once("functions.php"); ?>
<?php $subject_set = find_all_subjects(); ?> 

没有问题一切正常,但你能解释&#34; functions.php&#34; 中的全局$ connection; 实际上是如何工作的?

2 个答案:

答案 0 :(得分:0)

当你写那行时

<?php   require_once("db_connection.php"); ?>

然后表现得像db_connection.php文件一样写入该文件。

然后你写的其他一行

<?php   require_once("functions.php"); ?>

然后就像你在main.php文件中编写function.php文件一样 工作正常..

答案 1 :(得分:0)

当您在网页中包含或要求PHP文件时,即使您将所有代码和功能拆分为单独的文件,如果只包含一个包含单独文件中所有代码的文件,则基本相同。

所以你在&#34; db_connection.php&#34;中声明/创建一个变量。如果你在&#34; functions.php&#34;中创建它,它的工作方式是相同的。如果你在同一页面中包含这两个文件。

如果你使用单独的文件,这就是你必须小心变量,函数等命名的原因。