【发布时间】:2011-11-03 00:45:05
【问题描述】:
我正在制作一个函数,它将在我的视图中插入一些简单的 HTML。我已经做了好几次没有问题了,但是这次我将使用在Controller中设置的变量->提取到视图中。
现在,我显然不想放弃我的单行快捷方式:<?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;
}
【问题讨论】:
标签: php codeigniter scope global-variables