PHP global variables


In PHP, global variables are variables that are accessible throughout the entire script, including inside functions and classes, if properly managed. Understanding global variables and how to use them effectively is crucial for maintaining and debugging PHP applications.

Global Variables in PHP

  1. Global Scope

    Variables declared outside of any function or class are considered to be in the global scope. These variables are accessible throughout the script, except inside functions or methods unless explicitly referenced.

    Example:

    <?php $globalVar = "I am a global variable"; function displayGlobalVar() { global $globalVar; // Use the global keyword to access the global variable echo $globalVar; // Outputs: I am a global variable } displayGlobalVar(); ?>
    • global Keyword: Used within a function to access a variable that was defined in the global scope.
  2. Superglobals

    PHP provides several built-in global arrays known as superglobals. These arrays are always accessible, regardless of scope. They are used to handle various aspects of the PHP runtime environment.

    Common Superglobals:

    • $_GET: Contains data sent via URL query parameters (GET method).

      <?php // URL: example.php?name=John&age=25 echo $_GET['name']; // Outputs: John echo $_GET['age']; // Outputs: 25 ?>
    • $_POST: Contains data sent via POST requests (POST method).

      <?php // Form with method="post" echo $_POST['username']; // Outputs: the value from the username field ?>
    • $_REQUEST: Contains data from both $_GET and $_POST, as well as $_COOKIE.

      <?php echo $_REQUEST['username']; // Outputs data from GET, POST, or COOKIE ?>
    • $_SESSION: Used to store session variables.

      <?php session_start(); $_SESSION['user'] = "JohnDoe"; echo $_SESSION['user']; // Outputs: JohnDoe ?>
    • $_COOKIE: Contains data sent via cookies.

      <?php echo $_COOKIE['user_preference']; // Outputs the value of the 'user_preference' cookie ?>
    • $_SERVER: Contains server and execution environment information.

      <?php echo $_SERVER['SERVER_NAME']; // Outputs the server name echo $_SERVER['REQUEST_METHOD']; // Outputs the request method (GET or POST) ?>
    • $_FILES: Contains information about file uploads.

      <?php // Access file upload data echo $_FILES['uploaded_file']['name']; // Outputs the name of the uploaded file ?>
    • $_ENV: Contains environment variables.

      <?php echo $_ENV['HOME']; // Outputs the value of the HOME environment variable ?>
    • $_GLOBALS: An associative array containing all global variables.

      <?php $myVar = "Global Variable"; echo $_GLOBALS['myVar']; // Outputs: Global Variable ?>
  3. Using Global Variables in Functions

    To access or modify global variables inside functions, use the global keyword. Alternatively, you can use the $_GLOBALS array.

    Example with global Keyword:

    <?php $message = "Hello, world!"; function printMessage() { global $message; echo $message; // Outputs: Hello, world! } printMessage(); ?>

    Example with $_GLOBALS Array:

    <?php $message = "Hello, world!"; function printMessage() { echo $_GLOBALS['message']; // Outputs: Hello, world! } printMessage(); ?>
  4. Best Practices

    • Avoid Overusing Globals: Relying too much on global variables can make your code harder to maintain and debug. Instead, consider using function parameters, return values, or object properties to manage data.
    • Use Superglobals Wisely: While superglobals are convenient, they should be used carefully to avoid security issues like unauthorized access or manipulation of data.