1.如何在ThinkPHP模板中操作session,session中是否保存了数组。
在ThinkPHP的模板中操作session时,可以参考ThinkPHP参考文档中的“模板-系统变量”一节。在默认模板引擎中,语法如下:
{$Think.session.user} //输出session中保存的user信息
但是,如果user是一个数组,如何输出数组中指定的单元格(比如‘user _ id’)?您不能使用{$Think.session.user.user_id}或{ $ think . session . user[' user _ id ']}。
前者之所以错,是因为这个写法只支持了一点;
第二是不支持这种写法。解决方法是使用标签取出模板中数组的指定单元格,赋值,然后使用。
$ is _ advisor = session(' user . user _ id ');
就是这样。
其次,thinkphp模板输出cookie,即会话中的值
系统变量和特殊变量
系统变量:包括服务器、会话、post、get、请求和cookie
{ $ think . SERVER . script _ name }//Output $ _ SERVER变量
{ $ think . SESSION . SESSION _ id | MD5 }//Output $ _ SESSION变量
{ $ think . GET . page number }//Output $ _ GET变量
{$Think.cookie.name} //输出$_COOKIE变量
{$Think.version} //版本
{$Think.now} //现在时间
{$Think.template|basename} //模板页面
{ $认为。LDELIM} //模板标签开始符号
{ $认为。RDELIM} //模板标签的结束符号
系统变量和特殊变量(简明方式)
{@var} //输出会话变量相当于{$Think.session.var}
{#var} //输出的Cookie变量相当于{$Think.cookie.var}。
{&var} //输出配置参数等同于{$Think.config.var}。
{%var} //输出语言变量相当于{$Think.lang.var}。
{.var} //输出的GET变量相当于{$Think.get.var}。
{ var }//输出的POST变量相当于{$Think.post.var}。
{*var} //输出常量相当于{$Think.const.var}。
第三,cookie来存储数组(会话应该是相同的)
如果要用cookie存储数组(会话应该也是这样),最好是序列化数组,也就是说要把数组或者类转换成一个长字符串,然后用的时候反序列化。这种方法广泛应用于购物车系统等。
php的具体功能是
Serialize()/*序列化*/
deserialize()/* unserialize()/*/
另外还有json技术,这是前台php和javascript之间数组通信的标准。当然,核心是序列化:
json_encode(),json_decode()
序列化后的数组通过AJAX传输到javascript前台,序列化后的数组可以直接赋给一个变量,在php中可以作为数组使用。</p>