我似乎有一個鬼。我正在加載一個頁面(通常在另一個頁面中加載,如果有幫助的話,但是當我自己加載頁面時該錯誤仍然出現)並且在輸出的頂部,在所有其他頁面之前,我會隨機獲得一個false
。「false」出現在ob_start旁邊()
正是在$this->load->view('my_view');
輸出。我去調查了CodeIgniter系統文件,發現在_ci_load($_ci_data)
方法中有一行說ob_start();
。當我把線解決此代碼:
echo "hey!";
ob_start();
echo "here!";
輸出我得到的是hey!falsehere!
。
我發現我可以停止輸出false
的唯一方法是在代碼之前的某處放置另一個ob_start()
。我已經在控制器,視圖,視圖加載器和CodeIgniter.php本身中擺弄了不同的位置。此處,我發現它打破:
// Is there a "remap" function? If so, we call it instead
if (method_exists($CI, '_remap'))
{
$CI->_remap($method, array_slice($URI->rsegments, 2));
}
如果我把ob_start()
電話前_remap
,該false
消失;如果我之後說得對,false
仍然顯示出來。
任何人都知道該怎麼辦?我知道這是一個非常困難和晦澀的問題,但我不知道我應該採取的下一步是什麼。任何有關問題可能來自哪裏的建議都非常受歡迎。
我運行PHP 5.4.30,用笨2.1.4(也許是時候更新...)
如果'FALSE'正在由'_remap'方法的輸出,也許看方法做什麼。我猜測有一個'echo'或'print'在某個布爾變量上被調用的地方。 –
我會更新到3.0,並停止與系統文件 – CodeGodie
@ AlexanderO'Mara搞亂,我看着_remap方法和它所做的是在我的控制器方法調用call_user_func_array。所以我想也許是因爲我有一箇舊版本的PHP,但更新到5.6並沒有解決它。 – Jan