- array_filter: documentation ( source)
- min: documentation ( source)
<?php
const PERMANENT = -1;
function mergeMaxAges() {
$max_ages = func_get_args();
// Filter out all max-age values set to cache permanently.
$max_ages = array_filter($max_ages, function ($max_age) {
return $max_age !== PERMANENT;
});
// If nothing is left, then all max-age values were set to cache
// permanently, and then that is the result.
if (empty($max_ages)) {
return PERMANENT;
}
return min($max_ages);
}
for ($i = 0; $i < 10000; $i++) {
mergeMaxAges(0, 60);
mergeMaxAges(0, 0);
mergeMaxAges(0, PERMANENT);
mergeMaxAges(PERMANENT, 60);
mergeMaxAges(PERMANENT, PERMANENT);
}