Проверить существует ли функция php

Проверка существования метода в PHP

Классы могут содержать динамические методы, наличие которых неочевидно внешнему разработчику. Кроме того, в процессе эксплуатации могут создаваться разнородные массивы объектов, которые могут содержать различные методы. Для подобных ситуаций необходимы инструменты проверки существования метода в классе. В качестве такого инструмента в PHP выступает функция «method_exists()».

Функция в качестве первого параметра принимает имя класса или объект, а в качестве второго имя метода и возвращает «true», если объект или класс имеет данный метод, и «false» в противном случае.

Продемонстрируем работу функции «method_exists()» и создадим класс «myExists», который будет содержать два метода, открытый и закрытый.

 class myExists < public function method_public() < echo 'Открытый метод'; >private function method_private() < echo 'Закрытый метод'; >> $_Class_myExists = new myExists(); if(method_exists($_Class_myExists, 'method_public')) < echo '
Метод "method_public" существует
'; > if(method_exists($_Class_myExists, 'method_private')) < echo '
Метод "method_private" существует
'; > if(method_exists($_Class_myExists, 'method_protected')) < echo '
Метод "method_protected" существует
'; > else < echo '
Метод "method_protected" не существует
'; >

В примере при помощи функции «method_exists()» в объекте класса «myExists» проверяется наличие существующих методов «method_public()», «method_private()» и не существующего метода «method_protected()». Результат:

 Метод "method_public" существует Метод "method_private" существует Метод "method_protected" не существует 

Как видно из результата проверки, функция возвращает «true» для каждого из методов, независимо от его спецификатора доступа, «false» возвращается только в том случае, если объект не обладает ни закрытым, ни открытым методом с таким именем.

Читайте также:  Javascript подключить внешний скрипт

В качестве первого аргумента функции «method_exists()» используется объект класса «$_Class_myExists», однако для проверки метода вовсе не обязательно создавать объект, достаточно передать имя класса. Пример:

 method_exists('myExists', 'method_public'); 

При работе с функцией «method_exists()» следует учитывать, что она не может определить наличие динамических методов, созданных при помощи специального метода «__call()», «__callStatic()».

Помимо функции «method_exists()» можно воспользоваться альтернативной функцией «is_callable()», которая в отличие от «method_exists()», кроме проверки метода класса позволяет проверить существование функции, не входящей в состав класса.

Работая со сторонним классом, разработчик зачастую не знает досконально всех методов данного класса. Для того чтобы получить их полный список, можно воспользоваться функцией «get_class_methods()». В качестве первого параметра функция принимает имя класса, а возвращает массив его открытых методов. Следует подчеркнуть, что закрытые методы этой функцией не возвращаются. Пример:

 $_all_pulic_method = get_class_methods($_Class_myExists); echo '
'; print_r($_all_pulic_method); echo '

';

Как можно видеть, закрытый метод «method_private()» не включён в результирующий массив. Динамические методы, которые эмулируются при помощи специального метода «__call()», «__callStatic()», также не попадают в список, получаемый при помощи функции «get_class_methods()».

Комментировать

Источник

function_exists

Проверяет, есть ли в списке определённых функций, как встроенных, так и пользовательских, функция function_name .

Список параметров

Возвращаемые значения

Возвращает TRUE , если function_name существует и является функцией, иначе возвращается FALSE .

Замечание:

Эта функция возвращает FALSE для языковых конструкций, таких как include_once или echo .

Примеры

Пример #1 Пример использования function_exists()

if ( function_exists ( ‘imap_open’ )) echo «IMAP функции доступны.
\n» ;
> else echo «IMAP функции недоступны.
\n» ;
>
?>

Примечания

Замечание:

Обратите внимание, что название функции может присутствовать, даже если саму функцию невозможно использовать из-за настроек конфигурации или опций компиляции (например, как для функций image).

Смотрите также

  • method_exists() — Проверяет, существует ли метод в данном классе
  • is_callable() — Проверяет, может ли значение переменной быть вызвано в качестве функции
  • get_defined_functions() — Возвращает массив всех определённых функций
  • class_exists() — Проверяет, был ли объявлен класс
  • extension_loaded() — Определение, загружено ли расширение

Источник

function_exists

Проверяет список определенных функций, как встроенных (внутренних), так и определяемых пользователем, на наличие function .

Parameters

Return Values

Возвращает true , если function существует и является функцией, иначе false .

Note:

Эта функция вернет false для таких конструкций, как include_once и echo .

Examples

Пример # 1 function_exists () Пример

 if (function_exists('imap_open')) < echo "IMAP functions are available.
\n"
; > else < echo "IMAP functions are not available.
\n"
; > ?>

Notes

Note:

Имя функции может существовать, даже если сама функция непригодна для использования из-за параметров конфигурации или компиляции ( например, функции изображения ).

See Also

  • method_exists () — Проверяет, существует ли метод класса
  • is_callable () — Убедитесь, что значение может быть вызвано как функция из текущей области.
  • get_defined_functions () — возвращает массив всех определенных функций
  • class_exists () — Проверяет, определен ли класс
  • extension_loaded () — Узнает, загружено ли расширение
PHP 8.2

(PHP 4, 5, 7, 8) func_get_args Возвращает массив, содержащий список аргументов функции. Получает массив списка аргументов функции.

(PHP 4,5,7,8)func_num_args Возвращает количество аргументов,переданных функции Получает количество аргументов,переданных функции.

(PHP 4,5,7,8)fwrite Бинарно-безопасный файл fwrite()записывает содержимое данных в файловый поток,на который указывает ресурс указателя файловой системы,который,как правило.

(PHP 5 5.3.0,7,8)gc_collect_cycles Заставляет собирать любой существующий мусор Заставляет собирать любые существующие циклы мусора.

Источник

PHP Check if Function Exists

PHP Check if Function Exists

  1. Use function_exists() to Check Availability of Built-In Function in PHP
  2. Use function_exists() to Check User Defined Functions in PHP
  3. Check All the Functions That Exist in the Environment in PHP

PHP has a built-in function called function_exists() to check if a function exists or not which can check any built-in or defined functions. This tutorial demonstrates how to use function_exists() in PHP.

Use function_exists() to Check Availability of Built-In Function in PHP

The return value of function_exists() is boolean. Let’s check for the functions from different libraries.

php //Check a function from cURL library  if (function_exists('curl_close'))   echo "The function curl_close is available.
"
;
> else echo "The function curl_close is not available.
"
;
> //Check a function from gettext library if (function_exists('gettext()')) echo "The function gettext() is available.
"
;
> else echo "The function gettext() is not available.
"
;
> //Check a function from ftp library if (function_exists('ftp_alloc')) echo "The function ftp_alloc() is available.
"
;
> else echo "The function ftp_alloc() is not available.
"
;
> //Check a function from GD library if (function_exists('imagecreatefromgif')) echo "The function imagecreatefromgif is available.
"
;
> else echo "The function imagecreatefromgif is not available.
"
;
> ?>

The code checks the functions from cURL , gettext , ftp , and gd library. Two of the libraries are enabled, and the other two are disabled.

The function curl_close is available. The function gettext() is not available. The function ftp_alloc() is not available. The function imagecreatefromgif is available. 

Use function_exists() to Check User Defined Functions in PHP

function_exists() can check for the functions defined before or after checking.

php function demofunction()    //Anything  >  if (function_exists('demofunction'))    echo "demofunction exists
"
;
> else echo "demofunction doesn't exists.
"
;
> if (function_exists('demofunction1')) echo "demofunction1 exists
"
;
> else echo "demofunction1 doesn't exists.
"
;
> function demofunction1() //Anything > ?>

The code above checks for two functions. One is defined before and one after the checking.

demofunction exists demofunction1 exists 

Check All the Functions That Exist in the Environment in PHP

PHP also has a built-in function to check all the functions in the environment.

php var_dump( get_defined_functions());  ?> 

The output will get all the functions that exist in the environment. The output is a very large array, so we minimized it to a few members.

array(2) < ["internal"]=>array(1224) < [0]=>string(12) "zend_version" [1]=> string(13) "func_num_args" [2]=> string(12) "func_get_arg" [3]=> string(13) "func_get_args" [4]=> string(6) "strlen" [5]=> string(6). 

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

Related Article — PHP Function

Источник

Оцените статью