Функция обратной PHP - PullRequest
       6

Функция обратной PHP

0 голосов
/ 04 сентября 2018

У меня есть 13 функций для расчета некоторых параметров. Я хранил рассчитанные данные в базе данных. Теперь мне нужны грубые значения. Например

function calculatex($value){
return $value*2; }
 echo calculatex(4); 
//will print 8

есть ли способ, подобный

echo un-calculatex(8);
// will print 4

пс: все функции имеют только один параметр.

1 Ответ

0 голосов
/ 05 сентября 2018

Это полностью зависит от того, что происходит внутри исходных функций.

Для простого вычисления, такого как пример в вашем вопросе, можно написать обратную функцию для него, чтобы определить ввод, который дал данный вывод. Для вашего примера просто деление должно работать надежно:

function un_calculatex($value) {
    return $value / 2;
}
echo un_calculatex(8);  // 4

Но вы сможете сделать это только в том случае, если исходная функция выдает ровно один уникальный вывод для каждого входа. Очень легко написать функцию, которая этого не делает, и если какая-либо из ваших функций похожа на это, на самом деле нет никакого способа надежно вернуться к исходному вводу. Пара простых примеров:

function example1($a) {
    return ($a < 5) ? ($a * 2) : $a;
}
echo example1(3);  // 6
echo example1(6);  // 6

function example2($b) {
    return $b * $b;
}
echo example2(2);  // 4
echo example2(-2); // 4

function example3($c) {
    return (time() % 5) + $c;
}
echo example3(42); // who knows

Вам придется просмотреть каждую из ваших первоначальных функций, чтобы определить, возможна ли она.

...