PHP Variable Handling is_callable() Function



The PHP Variable Handling is_callable() function is used to check if something can be used as a function. It is useful to know whether we can call a function before using it. This function uses __invoke() to connect with standard functions, class methods, and objects. If we set the second argument to true, it will just examine the function's format, not its existence.

It also takes an optional third argument, which stores the function's name if it is callable. The function returns true whether the value is callable and false otherwise. This function is useful when working with unknown or dynamic functions. It helps to avoid problems by checking if a function can be called before using it.

Syntax

Below is the syntax of the PHP Variable Handling is_callable() function −

bool is_callable ( mixed $value, bool $syntax_only, string &$callable_name )

Parameters

Below are the parameters of the is_callable() function −

  • $value − (Required) It is the value we want to check. It can be a function name an array, an object with __invoke() or a Closure.

  • $syntax_only − (Optional) If true, it just validates the callable's syntax. It does not verify that the function or method exists.

  • $callable_name − (Optional) If the value is callable, it saves its callable name. For example, when testing a class method, use "MyClass::myMethod".

Return Value

The is_callable() function returns TRUE if the value is callable means can be used as a function. Returns FALSE if the value is not callable.

PHP Version

First introduced in core PHP 4.0.6, the is_callable() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP Variable Handling is_callable() function to check if it is callable.

<?php
   function hello() {
      echo "Hello, World!";
   }

   var_dump(is_callable('hello')); 
?>

Output

Here is the outcome of the following code −

bool(true)

Example 2

In the below PHP code we will use the is_callable() function and create a class with a method and also we will check if it is callable.

<?php
   class MyClass {
      public function myMethod() {
         echo "This is a method";
      }
   }

   $obj = new MyClass();
   var_dump(is_callable([$obj, 'myMethod']));
?> 

Output

This will generate the below output −

bool(true)

Example 3

Now the below code we will check an object with __invoke(). So we will create a class with an __invoke() method and check if the object is callable or not using the is_callable() function.

<?php
   class MyClass {
      public function __invoke() {
         echo "This object is callable!";
      }
   }

   $obj = new MyClass();
   var_dump(is_callable($obj));
?> 

Output

This will create the below output −

bool(true)
php_variable_handling_functions.htm
Advertisements