Лучший шаблон для написания PHP-функции, которая проверяет доступ и возвращает больше, чем логическое значение?

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

Я просто хочу написать отдельные функции для этого, такие как «canUserSeeThis ()» и «canUserSeeThat ()»

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

Каков наилучший «шаблон» для быстрого создания такой функциональности? Должен ли я оставить сообщение в возвращаемом значении? Должен ли я работать с бросанием исключений?

Я просто создаю прототипы, поэтому я пока не хочу определять полную систему API.

0

Решение

Я думаю, что просто передача по ссылке — это то, что вам нужно:

<?php
function canUserSeeThis(&$whyCanNotMessage)
{
$whyCanNotMessage = 'Because you are not administrator';
return false;
}

$meesage;
if (!canUserSeeThis($meesage))
print($message);
?>

Если вам нужно собрать несколько сообщений, вы можете передать ссылку на массив, и каждый метод canUserSeeXXX () добавит строку в массив. Позже вы распечатываете все элементы массива для пользователя.

<?php
function canUserSeeThis(&$whyCanNotMessageList)
{
array_push($whyCanNotMessageList, 'Because you are not administrator');
return false;
}

function canUserSeeThat(&$whyCanNotMessageList)
{
array_push($whyCanNotMessageList, 'Because you are not advanced user');
return false;
}

$meesageList = array();
$shouldShowMessage = !canUserSeeThis($meesageList)||!canUserSeeThat($meesageList);

if ($shouldShowMessage)
echo '<pre>'; print_r($meesageList); echo '</pre>';
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]