<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="ThinkPHP3.1.3版本发布的新特性概述" id="card1">
<p> 游客</p><p>
标题:ThinkPHP3.1.3版本发布的新特性概述<br/>
正文:<br/>
ThinkPHP3.1.3版本有一些特性，还是值得关注的，下面来简单说下。1、异常方面的改进新版的ThinkPHP3.1.3重写了异常类ThinkException（其实是完全简化成了直接继承系统Exception类），并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。<br/> 并且改进后的异常处理支持系统致命错误的捕获，Think类增加了fatalError方法，原理是使用了register_shutdown_function(array('Think','fatalError'));因此可以使得系统致命错误通过统一的异常模板界面友好提示。2、对PDO参数绑定的支持因为ThinkPHP3.*版本采用的是混合数据库驱动，同时也支持PDO方式，但之前版本并未针对PDO做优化，只是简单的封装。3.1.3版本完善了对PDO以及Sqlarv的支持，因为PDO和sqlsrv都支持参数绑定操作（注意，不支持参数绑定的数据库和驱动无法使用参数绑定功能）。系统对参数绑定操作的支持分两种：自动绑定和手动绑定。自动绑定是对于写入操作（这里包括数据的新增和更新），框架会自动把相关数据转换成参数绑定方式执行，这个部分不需要额外处理，因为sqlsrv只有采用参数绑定的方式传值才能支持UTF8数据写入，但是每次写入数据都要采用手动参数绑定的话，就会显得比较麻烦。为了避免和手动参数绑定冲突，自动参数绑定采用的是对字段名md5编码的方式。手动绑定，通常用于查询条件之类的，并且采用bind连贯操作方法，例如：$model-&amp;gt;where(array('id'=&amp;gt;':id','name'=&amp;gt;':name'))-&amp;gt;bind(array(':id'=&amp;gt;$id,':name'=&amp;gt;$name))-&amp;gt;select();<br/> 3、增加变量安全获取方法之前版本通过Action类的_post _get等方法来安全获取变量，虽然没问题，但局限是只能在控制器中获取变量，新版把这一功能独立成一个快捷方法I，可以用于任何地方。<br/> 使用方法如下：I('get.id',0); // 获取$_GET['id'] 如果不存在则默认为0<br/>I('post.name','','htmlspecialchars'); /<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1304&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1304&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1304&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1304&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1304">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1304">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>