我正在製作一個函數,它會在我的視圖中插入一些簡單的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