1,session可以保存任意类型的数据。因为是保存在服务器上的(即已经序列化)。
2,session运行机制
page1.php
<?php
session_start(); //已经开启了session,相当于已经读取了session信息
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="/blog_article/page2.html">page 2</a>';
?>
page2.php
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
?>
session_start声明$_SESSION变量,为 $_SESSION 赋值-> 操作 $_SESSION变量->将 $_SESSION内的数据写入数据空间,并释放变量。
删除$_SESSION不能unset ,可以将其置为空: $_SESSION = array();
删除当前 $_SESSION的数据文件 session_destory(),在默认系统路径下C:windos /Temp下。 可以在浏览器中找到该目录
删除浏览器内利用cookie技术,删除sessionID
setCookie('PHPSESSID',time()-1);
三个一起使用,即可完全删除session
3,周期可能出现不一致的情况。
PHP的session机制
分类: 日志 2013-05-06 01:22 192人阅读 评论(0) 收藏 举报
问题 :
1,如何确定分配sessionID
在session_start的时候。
两种情况,一是浏览器带了sessionID 请求,带了直接使用,没有带,则生成一个sessionID,并生成一个$_SESSION数组
2,如何形成session存储空间
使用sessionID定位服务器上的数据空间
3,如何保存数据到存储空间
将空间内的数据读取出来,反序列化后放入到$_SESSION数据内。
4,如何读取数据
在脚本结束后,将$_SESSION数据序列化写到数据空间内。
5,如何管理数据
即操作$_SESSION数组。
session重写机制:当session运行到一定的周期会自动调用以下的方法。并注意每个方法的该有的不同的参数。
<?php
function open() {
echo 'close';
}
function close() {
echo 'close';
}
function read() {
echo 'read';
}
function write() {
echo 'write';
}
function destroy() {
echo 'destroy'; //当用户调用session_destory()后执行
}
function gc() {
echo 'gc'; //当脚本执行完之后
}
session_set_save_handler('open','close','read','write','destroy','gc');
session_start();//先设置再开启
?>
有关session使用中的问题,大家还可以阅读下这篇文章:http://www./article/5177.html
php中array_key_exists与isset()有哪些区别呢?
1,对于数组值的判断不同,对于值为null或''或false,isset返回false,array_key_exists返回true;
2,执行效率不同,isset是内建运算符,array_key_exists是php内置函数,isset要快一些。
3,当用isset访问一个不存在索引数组值时,不会引起一个E_NOTICE的php错误消息;
4,array_key_exists 会调用get_defined_vars判断数组变量是否存在,isset不用;
首先,来看floor 舍去法取整。
语法格式:float floor ( float value )
返回不大于value 的下一个整数,将value 的小数部分舍去取整。floor() 返回的类型仍然是float,因为float 值的范围通常比integer 要大。
echo floor(4.3); // 4
echo floor(9.999); // 9
?>
其次,看下ceil 进一法取整
语法格式: float ceil ( float value )
返回不小于value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是float,因为float 值的范围通常比integer 要大
echo ceil(4.3); // 5
echo ceil(9.999); // 10
?>
最后,round 对浮点数进行四舍五入
语法:float round ( float val [, int precision] )
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>
如果掌握了以上三种php下取整的方式,基本上在php编程中再遇到取整数的问题,完全可以自如应付了。
,祝大家学习进步。