How to call a given function only once in PHP

1 Answer

0 votes
function call_once($func) {
    static $called = []; // Use an array to track calls for different functions
    $funcName = is_string($func) ? $func : spl_object_hash($func); // Get unique identifier for the function

    if (!isset($called[$funcName])) {
        $called[$funcName] = true;
        return $func();
    } else {
        return null;
    }
}

function example() {
    return "example() function"; 
}

$result1 = call_once('example'); // Pass the function name as a string
$result2 = call_once('example'); // This will not execute example() again

echo "Result 1: " . ($result1 ?? 'null') . "\n"; // Output the return value
echo "Result 2: " . ($result2 ?? 'null') . "\n";



/*
run:

Result 1: example() function
Result 2: null

*/

 



answered Jan 6, 2025 by avibootz
...