Smarty對於未賦值變數的處理?!

來源:互聯網
上載者:User

這幾天一直在精簡最佳化Smarty,去掉了一些幾乎不會用到的功能,儘可能提高執行效率。

今天遇到一個問題:對於tpl模板中定義的變數,如果php中未對其賦值,將會出現Notice層級錯誤;如果使用原版smarty,將不會出現該錯誤提示。

雖然正式上線後將會error_reporting(0),但是平時開發總不能這樣吧,起碼smarty之外的notice還是需要看到的。

一直以為對於未賦值的變數,smarty會對其進行類似賦空值等處理,可能是我精簡時候去掉了。剛開始原本想著自己把這個功能加上,可是一直沒有找到可以添加的地方。直接翻看smarty源碼也始終沒有發現究竟在哪裡實現的該功能。

又重頭分析了一下,問題還是應該出現在fetch函數。這一次終於注意到個細節,在fetch函數第一行有一句關於錯誤報表的設定:

$_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting)<br /> ? $this->error_reporting : error_reporting() & ~E_NOTICE); 

原來smarty根本也沒有解決這個問題,仍然是通過暫時關閉Notice層級錯誤報表來解決的。

事情真的是這樣的嗎,不知Smarty有沒有做其他方面的處理,希望達人指正~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.