Yang
Yang

Reputation: 8701

global keyword outside the function in php

As we know, global keyword makes variable( or object, array) visible inside current function we are dealing with

<?php

$some_var = 'some string';

function __test(){
    global $some_var;
    echo $some_var; // some string
}

But some dev's still use the global keyword outside the functions at first look it doesn't make any sense to me.

Well, the question is: Does it make any sense to use 'global' keyword outside the function ???

Upvotes: 14

Views: 5804

Answers (2)

Sampson
Sampson

Reputation: 268364

From the docs:

Using global keyword outside a function is not an error. It can be used if the file is included from inside a function.

Essentially you could have your function guts in a different file than your function declaration. These guts would then be included into the function. This would give the impression, if you view the guts alone, of a user using global outside of a function, however the fact is that when this code is interpreted, it will be interpreted from within a function.

$name = "Jonathan";

function doSomething () {
  include 'functionGuts.php';
}

Where the contents of our functionGuts.php file could be:

global $name;
echo "Hello, " . $name;

When viewed on its own, functionGuts.php will give the impression that global is being used outside of a function, when in reality it's being used like this:

$name = "Jonathan";

function doSomething () {
  global $name;
  echo "Hello, " . $name;
}

Upvotes: 17

iWantSimpleLife
iWantSimpleLife

Reputation: 1954

Global keyword outside of functions does not do anything at all. but that file might be included within a function.

Another thing i use it not is to make my codes readable and more structured. any variable that i want to bo accessed using global keyword in a function, i declare it using global in the main file, so just a quick glance and i know that it is referenced somewhere as a global. (meaning don't rename anyhow as other is used somewhere else... :) )

Upvotes: 1

Related Questions