PHP Assign Function to Variable – Examples and Explanation

PHP variable function is a variable that is used to assign a function name with parentheses (). However, the PHP interpreter checks if it contains a callback or a function which should exist in the PHP project. If it doesn’t exist, the interpreter will produce an error.

    Let’s see how to do that.

    How to Assign a Function to Variable using PHP

    According to this concept, PHP allow us to write a string inside a variable which can be called later as a function callback. Here is an example.

    $func = "codedtag";
    
    function codedtag() {
      echo "Welcome to CodedTag.com Tutorials.";
    }
    
    $func(); // Welcome to CodedTag.com Tutorials.

    In this example, I assigned a string value to the variable $func, which contains the function name codedtag. Then, I defined the function with the same name as this string.

    In the following line, I called the variable as a function $func(). However, when the interpreter reads it, it will connect the parentheses () with the string inside the variable and consider it as a callback.

    Additionally, the PHP interpreter will consider this as a variable function, so if the function is not found during execution, the interpreter will stop executing the code immediately and show you an error message.

    Here’s an example to demonstrate this scenario.

    $func = "calling_func";
    $func();

    In this example, I called an undefined function, which is calling_func. That means PHP has to execute this function, calling_func(). But it is not defined yet in the document. So, it will show you the following error.

    Fatal error: Uncaught Error: Call to undefined function calling_func() in /tmp/index.php:4 Stack trace: #0 {main} thrown in /tmp/index.php on line ..

    Anyway, let’s focus on another aspect of PHP variable functions, which involves the functions inside a class.

    Assign a PHP Function of Class as a Variable

    In PHP, you can also use the methods of a class as variables with parentheses to call them once an instance of the class is created.

    Here is an example:

    class team {
       public function group() {
          echo "Our team is ready to start the challenge";
       }
    }
    
    $obj = new team();
    $group = "group";
    $obj->$group();

    In this example, we can see that the $group variable stores the name of the method, which can be called by using parentheses.

    But, what if the method inside the class contains a static property? Let’s see how it works with the example below.

    class team {
       public static function group() {
          echo "Our team is ready to start the challenge";
       }
    }
    
    $obj = new team();
    $group = "group";
    $obj::$group();

    One way to call the function using the variable name as a function name is by using the scope resolution operator like this: $obj::$group().

    Moreover, there is another method that works on PHP 5.4 and above. It allows us to use a complex callback. For example:

    $obj = new team();
    $group = array($obj, "group");
    $group();

    Let’s see how it works with the static method.

    class team {
      public static function group() {
        echo "Static Method.";
      }
    }
    $group = array( "team", "group");
    $group();

    In both of these examples, the array acts as a function by implementing the class object, with the function being callable once it finds that the main variable has parentheses.

    You learned how to assign a function to a PHP variable, but how to pass arguments within? Let’s focus on this in the following section.

    Variable Function and Arguments

    You can follow the same approach and pass the arguments into the parentheses of the variable function.

    $array = array( "item 1", "item 2", "item 3" );
    $func = "count";
    echo $func($array); // 3

    In the above example, the $func variable contains the string name “count”. When invoked with parentheses, PHP looks for the count() function, which requires a countable element as an argument.

    However, some PHP predefined callbacks, such as language constructs (e.g., requireemptyincludeissetprintunset, and echo), will not work with variables.

    Here is an example:

    $value = "Not Empty";
    $is_empty = "empty";
    var_dump($is_empty());

    This will show you a fetal error in PHP like the below.

    Fatal error: Uncaught Error: Call to undefined function empty()

    Anyway, Let’s summarize it.

    Wrapping Up

    During this tutorial, you learned what variable functions are and how to use them with a class, static methods, and more. Here is the explanation in a few points:

    • The variable functions in PHP lets you use a variable as a function name. You assign the name of a function to a variable. And then, you call it with parentheses.
    • Assign "codedtag" to a variable $func. Define a function codedtag(). Call $func() to execute codedtag().
    • If the assigned function doesn’t exist, PHP stops. It shows a fatal error. This means the function is undefined.
    • You can assign methods from a class to variables. Call these methods through the variable. Use the scope resolution operator (::) for static methods.
    • Variable functions can take arguments. Include them within the calling parentheses.
    • Some PHP constructs like require and empty can’t be variable functions. Trying this results in a fatal error.

    Thank you for reading. Happy Coding!

    Similar Reads

    PHP htmlspecialchars Function: Prevent XSS in HTML Output

    A PHP script can break the page or allow code injection if it outputs user input directly into HTML. The…

    PHP array_count_values: How it Works with Examples

    Developers use the array_count_values function in PHP to find how many times each value appears in an array. What is…

    Class and Object in PHP: How They Work with a Real Example

    Classes and objects are important parts of OOP in PHP. They help you organize your code so you can update…

    PHP Array: Accessing and Managing Elements

    PHP arrays are lists or maps that contain multiple values grouped by array keys. They may include integers, strings, booleans,…

    PHP $_SERVER: Basics and Examples

    PHP $_SERVER is a superglobal. It’s a predefined variable containing information about your server, client, and request environment. As a…

    PHP fread Function: How to Read Files in PHP

    In some cases, you need to handle a lot of data or simply try to open a file, or read…

    PHP array_column: How to Extract Values from Arrays

    The array_column function in PHP takes values from one column in a multidimensional array. You can use it to pull…

    PHP Named Arguments vs. Positional Arguments

    The PHP named arguments are the names of the arguments through which the values are passed, allowing you to add…

    How to Delete Documents in MongoDB with PHP

    Deleting records in MongoDB is a common task. You might need to clear old data, remove outdated entries, or handle…

    PHP Arithmetic Operators: Essential Guide

    Perhaps you're new to PHP or sharpening your skills and looking to understand how numbers work within this language under…

    Previous Article

    Parameters and Arguments in PHP: What’s the Difference?

    Next Article

    PHP Variadic Functions: Use Unlimited Arguments

    Write a Comment

    Leave a Comment

    Your email address will not be published. Required fields are marked *


    Subscribe to Get Updates

    Get the latest updates on Coding, Database, and Algorithms straight to your inbox.
    No spam. Unsubscribe anytime.