function tabsort($area, $event) { if ($area) { $areas = areas(); foreach ($areas[$area] as $a => $b) { if (has_privs($b)) { $out[] = tabber($a, $b, $event, 2); } } return empty($out) ? '' : join('', $out); } return ''; }
function tabsort($area, $event) { if ($area) { $areas = areas(); $out = array(); foreach ($areas[$area] as $a => $b) { if (has_privs($b)) { $out[] = tabber($a, $b, $event, 2); } } return $out ? join('', $out) : ''; } return ''; }
<?php ## Передача анонимной функции в качестве параметра. function tabber($spaces, $echo, ...$planets) { // Подготавливаем аргументы для myecho(). $new = []; foreach ($planets as $planet) { $new[] = str_repeat(" ", $spaces) . $planet; } // Пользовательский вывод задается из вне $echo(...$new); } // Массив для вывода $planets = ["Меркурий", "Венера", "Земля", "Марс"]; // отображаем строки одну под другой tabber(10, function (...$str) { foreach ($str as $v) { echo "{$v}<br />\n"; } }, ...$planets);
function tabsort($area, $event) { $areas = areas(); foreach ($areas[$area] as $a => $b) { $out[] = tabber($a, $b, $event, 2); } return join('', $out); }
<?php ## Использование call_user_func_array(). // Вывод всех параметров на отдельных строках. function myecho(...$str) { foreach ($str as $v) { echo "{$v}<br />\n"; // выводим элемент } } // То же самое, но предваряет параметры указанным числом пробелов. function tabber($spaces, ...$planets) { // Подготавливаем аргументы для myecho(). $new = []; foreach ($planets as $planet) { $new[] = str_repeat(" ", $spaces) . $planet; } // Вызываем myecho() с новыми параметрами. call_user_func_array("myecho", $new); } // отображаем строки одну под другой tabber(10, "Меркурий", "Венера", "Земля", "Марс");