🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
修改目录权限: ~~~ sudo chmod -R 777 /usr/share/nginx/html ~~~ 在`/usr/share/nginx/html`文件夹下,创建`1.php`,内容如下: 先存储 ~~~php <?php session_start(); $_SESSION['NAME'] = "ChongQing"; ?> ~~~ 创建`2.php`验证是否存在,代码如下: ~~~php <?php session_start(); echo $_SESSION['NAME']; ?> ~~~ 在浏览器上先后运行这两个文件:`localhost/1.php`和`localhost/2.php`。 若能在网页上出现`ChongQing`,则证明已经存储有该值。 ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid735639labid1397timestamp1532056148997.png) 下面我们尝试将一个对象保存至 session 中,编写 3.php: ~~~php <?php session_start(); //保存一个对象到session文件 class Dog{ private $name; private $age; private $intro; function __construct($name,$age,$intro){ $this->name=$name; $this->age=$age; $this->intro=$intro; } public function getName(){ return $this->name; } } $dog1=new Dog("大狗",5,"很好的一只狗"); $_SESSION['dog1']=$dog1; echo "保存OK"; ?> ~~~ 上面的代码是可以正常运行的。 ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid735639labid1397timestamp1532056185536.png) 在 session 中可以保存的数据有: * string * integer * double * boolean * array * object #### session 对象存储 1. 要使用 session ,都需要初始化[session\_start()](http://php.net/manual/en/function.session-start.php); 2. 取出基本信息 3. 取对象 编写 4.php: ~~~php <?php //获取session echo "<br>获取session数据</br>"; //1.把所有的session获取 session_start(); print_r($_SESSION); //2.通过key来指定获取某个值 echo "名字是":.$_SESSION['name']; $arr1=$_SESSION['arr1']; foreach($arr1 as $key=>$val){ echo "<br/>--$val"; } //3.取出对象,因为是私有的,要提供一个public方法 echo "<br/> dog'name is ".$xiaoguo->getName(); ?> ~~~ 可能报错:对象不完整。用浏览器访问可能得不到我们想要的内容。 因为在存 session 的时候,会把“类”这个概念丢失。所以不知道这是一个类,要在 session 取出来之前声明一下这个类的信息,改写`4.php`: ~~~php <?php session_start(); class Dog{ private $name; private $age; private $intro; function _construct($name,$age,$intro){ $this->name=$name; $this->age=$age; $this->intro=$intro; } public function getName(){ return $this->name; } } $xiaoguo=$_SESSION['dog1']; echo "<br/> dog'name is ".$xiaoguo->getName(); ?> ~~~ ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid735639labid1397timestamp1532056178170.png) 如果觉得麻烦,可以写成这样,然后把 Dog 类封装,`require_once "Dog.class.php"`,注意写在 session 之前。 #### 更新 session 其实就是重新存入,刷新以前的数据,改写 1.php: ~~~php <?php //更新 session_start(); $_SESSION['NAME']="shiyanlou"; ?> ~~~ 在浏览器上先后运行这两个文件:`localhost/1.php`和`localhost/2.php`。运行后截图如下: ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid735639labid1397timestamp1532056212023.png) #### 删除 session 一个 session 对应的是一个浏览器中的一个会话,在写代码的时候 用`empty()`去判断 session 文件的存在。改写 1.php: ~~~php <?php //删除某一个key<==>value session_start(); unset($_SESSION['NAME']); //unset是释放给定变量; echo "success"; //删除所有的key<==>value session_destroy(); //删除当前这个浏览器对应的session文件 ?> ~~~ 这个时候在运行`localhost/2.php`,就看不到之前的内容了。