我認爲僅僅通過引用傳遞就是你需要:
<?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