Я создаю прототип поведения нового приложения и хочу написать несколько функций, которые проверяют доступ на основе переменных дат.
Я просто хочу написать отдельные функции для этого, такие как «canUserSeeThis ()» и «canUserSeeThat ()»
В случае, если один из них возвращает false, я хочу отобразить сообщение, но я хочу, чтобы это сообщение было определено в этих функциях, но рендеринг принимает участие вне функций.
Каков наилучший «шаблон» для быстрого создания такой функциональности? Должен ли я оставить сообщение в возвращаемом значении? Должен ли я работать с бросанием исключений?
Я просто создаю прототипы, поэтому я пока не хочу определять полную систему API.
Я думаю, что просто передача по ссылке — это то, что вам нужно:
<?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>';
?>
Других решений пока нет …