我正在制作一个函数,它会在我的视图中插入一些简单的HTML。我已经好几次没有问题了,但是这一次我将使用在Controller->提取到视图中设置的变量。使用CodeIgniter获取辅助函数中的全局变量
现在,我显然不想从我的单行快捷方式中删除:<?php echo showStatusMessages(); ?>
通过检查是否设置了变量,然后将它们作为参数发送等,因为这只是完全消除了函数调用的要点。
经过一番尝试和失败后,我结束了一个受保护的属性,我想在我的函数中使用它。任何想法如何找到解决办法?
// Outputs success/error messages
function showStatusMessages() {
$variables = array(
'success',
'error'
);
foreach ($variables as $variable) {
// Cannot access protected property CI_Loader::$_ci_cached_vars
if ($variable = $GLOBALS['CI']->load->_ci_cached_vars[$variable]) ${$variable} = $variable;
break;
}
ob_start();
// Success message set
if (isset($success)) :
echo '<div class="message_box success_color">'.$success.'</div>';
endif;
// Error message set
if (isset($error)) :
echo '<div class="message_box error_color">'.$error.'</div>';
endif;
$msg = ob_get_contents();
ob_end_clean();
return $msg;
}
奇怪的是我没有想到的是优雅而简洁的解决方案。早在那个时候,我只会使用一个简单的'include()'语句,有趣的是,使用框架会使这种简单的思想变得复杂。谢谢! – Seralize