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
*/