我认为仅仅通过引用传递就是你需要:
<?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>';
?>
这可能是*程序员的一个问题*,并很可能已经有解答了:我同意@hoijui http://programmers.stackexchange.com – hoijui
。你也可以考虑使用像Zend或Symfony这样的框架。 – user2182349