-
属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。 class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed;查看全部
-
<?php //创建一个关联数组,关联数组的键“orange”,值是“橘子” $fruit = array("orange"=>"橘子","apple"=>"苹果"); foreach($fruit as $k=>$v){ print_r($k.$v); } ?>查看全部
-
<?php $fruit=array('苹果','香蕉','菠萝'); foreach($fruit as $key=>$value){ echo '<br>第'.$key.'值是:'.$value; } ?>查看全部
-
unset($_SESSION); //把所有的SESSION删除(包括name和其他的SESSION) unset($_SESSION['name']); //把名为name的SESSION删除查看全部
-
删除与销毁session查看全部
-
删除与销毁session 删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。 session_start(); $_SESSION['name'] = 'jobs'; unset($_SESSION['name']); echo $_SESSION['name']; //提示name不存在 如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy会删除所有数据,但是session_id仍然存在。 session_start(); $_SESSION['name'] = 'jobs'; $_SESSION['time'] = time(); session_destroy(); 值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。 session_start(); $_SESSION['name'] = 'jobs'; $_SESSION['time'] = time(); unset($_SESSION); session_destroy(); var_dump($_SESSION); //此时已为空 如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。查看全部
-
nanann查看全部
-
cookie是将数据储存到客户端,session是将数据储存在服务端查看全部
-
cookie存储在服务器中,比如你登陆扣扣的记住密码,会记住你的登陆信息,但是这个信息容易被盗取,还有你收藏的书签,也是cookie的形式,cookie的缺点就是有时间限制和安全问题 session叫会话,比cookie高级一点,就是把你的信息记录在服务器中,只要服务器不关闭,就一直存在,好点的列子是cookie就是好比拿钱炒股,很危险,session就相当于你把钱存入银行,只要银行不倒闭,就不会消失查看全部
-
session与cookie的异同 cookie将数据存储在客户端,建立起用户与服务器之间的联系,通常可以解决很多问题,但是cookie仍然具有一些局限: cookie相对不是太安全,容易被盗用导致cookie欺骗 单个cookie的值最大只能存储4k 每次请求都要进行网络传输,占用带宽 session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。查看全部
-
cookie的有效路径 cookie中的路径用来控制设置的cookie在哪个路径下有效,默认为'/',在所有路径下都有,当设定了其他路径之后,则只在设定的路径以及子路径下有效,例如: setcookie('test', time(), 0, '/path'); 上面的设置会使test在/path以及子路径/path/abc下都有效,但是在根目录下就读取不到test的cookie值。 一般情况下,大多是使用所有路径的,只有在极少数有特殊需求的时候,会设置路径,这种情况下只在指定的路径中才会传递cookie值,可以节省数据的传输,增强安全性以及提高性能。 当我们设置了有效路径的时候,不在当前路径的时候则看不到当前cookie。 setcookie('test', '1',0, '/path'); var_dump($_COOKIE['test']); 难啊难呐查看全部
-
我们也可以直接通过header来删除cookie。 header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1)); 这里用到了gmdate,用来生成格林威治标准时间,以便排除时差的影响。查看全部
-
ob_start();//打开输出控制缓冲 print_r($_COOKIE); $content = ob_get_contents();//复制缓冲区内容到$content中 $content = str_replace(" ", ' ', $content); ob_clean();//清空(擦掉)输出缓冲区 header("content-type:text/html; charset=utf-8"); echo '当前的Cookie为:<br/>'; echo nl2br($content);//nl2br 在字符串所有新行之前插入 HTML 换行标记查看全部
-
被正则表达式虐成狗查看全部
-
(.*?)这个匹配的是什么 (.*?)这个匹配的是什么 快来回答问题,最佳答案可 +2积分 什么是积分? 2017-07-31 源自:PHP进阶篇 3-6 52 浏览 2 回答 qq_宅_3 .点 匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。 * 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。 ? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。 2017-08-01 回复 0 慕妹6565232 两个字符之间的字符串或数字查看全部
-
授之以鱼,考人以鱽鱾鲀鲃鲂鲉鲌鲄鲆鲅鲇鲏鲊鲋鲐鲝鲘鲙鲗鲓鲖鲞鲛鲒鲚鲜鲟鲕鲧鲬鲪鲫鲩鲣鲡鲢鲠鲥鲦鲺鲯鲹鲴鲶鲳鲮鲭鲵鲲鲰鲱鲻 啊哈哈哈查看全部
举报
0/150
提交
取消