编写一个检查访问权限并返回更多布尔值的PHP函数的最佳模式?

时间:2015-10-06 09:35:36

标签: php design-patterns prototyping

我正在对新应用程序进行原型设计,并希望编写一些基于某些变量日期检查访问权限的函数。

我只想为此编写单独的函数,例如“canUserSeeThis()”和“canUserSeeThat()”

如果其中一个返回false,我想显示一条消息,但我希望在这些函数中定义该消息,但渲染参与函数之外。

快速构建此类功能的最佳“模式”是什么?我应该让消息在返回值中吗?我应该抛出异常吗?

我只是原型设计,所以我不想最终定义一个完整的API系统。

1 个答案:

答案 0 :(得分: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>';
?>