Вопрос:

Глобальное ключевое слово Php в другом файле

php global

191 просмотра

2 ответа

6 Репутация автора

Я новичок в 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() . ")"
    );
  }
?>

У меня также есть другой файл с именем « functions.php ». Где у меня есть функция для запроса

<?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;
}
?>

Основной файл, где я вызываю функцию "main.php"

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

Нет проблем, все работает нормально, но не могли бы вы объяснить, насколько глобальным является $ connection; внутри "functions.php" действительно работает?

Автор: Andy Источник Размещён: 21.03.2017 01:17

Ответы (2)


0 плюса

500 Репутация автора

когда вы пишете эту строку

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

тогда это ведет себя как запись файла db_connection.php в этот файл.

тогда другую строчку пишешь

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

тогда это ведет себя так, как будто вы пишете файл function.php в файле main.php, чтобы все работало нормально ..

Автор: Sagar Bhut Размещён: 21.03.2017 01:21

0 плюса

165 Репутация автора

Когда вы включаете или запрашиваете файлы PHP на веб-странице, даже если вы разбиваете весь свой код и функции на отдельные файлы, это по сути то же самое, если вы включили только один файл со всем кодом из отдельных файлов.

Таким образом, переменная, которую вы объявляете / создаете в «db_connection.php», работает так же, как если бы вы создали ее в «functions.php», если вы включили оба файла на одной странице.

Вот почему вы должны быть осторожны с именами переменных, функций и т. Д., Если вы используете отдельные файлы.

Автор: DocWeird Размещён: 21.03.2017 01:24
Вопросы из категории :
32x32