先看看下面的代码:
<?php
session_start();
$_SESSION['username']='lucy';
?>
当我们请求访问上面的脚本,默认会在我们的客户端生成一个名为PHPSESSID的cookie,我这里的值是PHPSESSID=e447hc9kpn6h44i58aj2931cu2;
我们去服务器端查看session文件保存的位置发现已经创建一个名为sess_e447hc9kpn6h44i58aj2931cu2的session文件;
打开sess_e447hc9kpn6h44i58aj2931cu2这个session文件看到其中的内容是:username|s:4:"lucy";
通过以上我们可以看到session是依赖于cookie的,服务器端是根据http请求头中PHPSESSID来找到对应的session文件进行处理的,那么是不是cookie禁用后session就无法使用了,事实上cookie禁用session依然可以用,只需要开启php.ini中的session.use_trans_sid = 1配置即可
通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
上篇文章已经讲解arrayacces的原理,现在来讲解下arrayaccess的实际应用。一个大型的互联网项目中必然会存在各种配置信息,例如多种数据库信息:mysql,tidb,mongodb,redis,某个业务模块单独的配置信息如比例,额度等等,那么该如何治理配置信息?PHP项目中大部分的框架都...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...