@mozillla

Как сравнить два Closure объекта в php?

Есть две переменные
$fn = function($a){
    return $a;
};
$fn2 = function($a){
    return $a;
};

Как понять что они выполняют один код? Вообще, есть возможность понять, что один Clossure объект "равен" другому? Может есть возможность хешировать такие переменные?

Сразу говорю, что serialize($fn) падает:
[Exception]
Serialization of 'Closure' is not allowed (0)

А $fn == $fn2 возвращает false;

var_export($fn, true)
string 'Closure::__set_state(array(
))' (length=30)
  • Вопрос задан
  • 327 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Есть https://php.net/manual/en/class.reflectionfunction.php, но выяснить что "один Clossure объект "равен" другому" с его помощью все равно нельзя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Ну хорошо, поищем за вас https://duckduckgo.com/?q=serialize+closure+php
Ссылку на GitHub видите?
Напрямую сравнить не получится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы