Video Lesson: Understand function and global scope in PHP

Understand function and global scope in PHP

Understand how function and global scope control variable visibility and promote reliable, predictable code.


Lesson Content

Let’s grab our $posts array and move it so that it’s within these curly brackets.

function getPosts()
{
    $posts = [
        [
            'title' => 'How to learn PHP',
            'content' => 'This is how you learn PHP.',
        ],
        [
            'title' => 'How to learn MySQL',
            'content' => 'This is how you learn MySQL.',
        ],
        [
            'title' => 'How to learn Nginx',
            'content' => 'This is how you learn Nginx.',
        ],
    ];
}

Note how immediately our $posts variable reference that is outside of the function is invalid. If we hover over this code hint, it tells us that $posts is an undefined variable. This is due to something called scope.

There are different scopes in PHP. The function completely encapsulates the code within it.

If we move the $title variable above the function, then try to reference $title within the function, notice how we will get the same “undefined variable” notice within the function.

<?php
$title = 'My Blog';
function getPosts()
{
    $title;
    $posts = [
        [
...

So, we now know that functions cannot access variables outside of the function, and code outside of the function cannot access variables in the function. This is what “scope” is — it’s a barrier so that code can’t get in or leak out of encapsulated code.

You might think this is absolutely horrible! But the opposite is true.

Since nothing can get in or out, our encapsulated code provides us with deterministic reliability. This means that when we call our function, we know we will get a consistent result even if external variables change. If we didn’t have the concept of scope, we would be unable to write programs that were reliable.

Note that we do have access to the global scope within our function, which means we can call all of PHP’s built-in functions within our functions. However, code within our functions cannot be directly called from outside of the function.

Maggie

Hey, I'm Maggie! 👋

Ask me anything.

Want to chat with Maggie?

Log in for AI tutor access.

Comments

Join the discussion!

Notes

Keep track of what you learn!