php 的小细节

栏目: PHP · 发布时间: 7年前

内容简介:php 的小细节

一、switch 执行易忽略的地方

$a=0;
switch($a){
    case 1:
        echo 44;
        break;
    case 0:
    case 2:
        echo 66;
        break;
    case 3:
        echo 88;
        break;
    default:
        echo 77;
}

正常情况下,会执行case为2的部分。

二、引用传递的好处

在函数中,按值传递,其实就是对变量制作一个副本,函数内部对变量的修改不会影响到函数外部。而按引用传递不仅可以在函数内部可以改变变量的值,而且在需要传递数据比较大的场景时,不需要构建一份数据的副本,可以提高性能。

三、浏览器缓存

为了提高web站点的响应速度,浏览器一般有缓存机制。在实际的网页中,一般会对视频和静态资源进行缓存。而作为程序员,了解浏览器缓存机制可以对网站开发起到一定的作用。

1、缓存控制

首先我们可以通过一些请求头对浏览器缓存进行控制。

cache-control: no-store  请求和响应都禁止被缓存must-revalidate 需要进行缓存验证

private:客户端可以缓存
public: 客户端和代理服务器都可缓存
max-age=xxx: 缓存的内容将在 xxx 秒后失效

Cache-Control: no-cache  
如下头部定义,此方式下,每次有请求发出时,缓存会将此请求发到服务器(译者注:该请求应该会带有与本地缓存
相关的验证字段),服务器端会验证请求中所描述的缓存是否过期,若未过期(注:实际就是返回304),则缓存才
使用本地缓存副本。

2、缓存验证

用户点击刷新按钮时会开始缓存验证。如果缓存的响应头信息里含有"Cache-control: must-revalidate”的定义,在浏览的过程中也会触发缓存验证。另外,在浏览器偏好设置里设置Advanced->Cache为强制验证缓存也能达到相同的效果。

进行缓存验证是通过last-Modified / if-Modified-Since  和 ETag / If-None-Match   进行的。

一般情况下浏览器第一次进行请求时候,服务器正常响应,返回给浏览器 last-Modified 响应头和响应内容。浏览器第二次进行请求时,会带上if-Modified-Since ,它的值与服务器返回的last-Modified的值一样,服务器接收到这个值以后 会与文件的最后修改时间进行对比,如果文件的最后修改时间大于 if-Modified-Since ,服务器就会返回最新的文件内容,浏览器就不会使用缓存。相反,浏览器就会使用缓存文件,服务器状态码为304。ETag / If-None-Match 的原理与上述是一样的。

参考文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ


以上所述就是小编给大家介绍的《php 的小细节》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘导论

数据挖掘导论

Pang-Ning Tan, Michael Steinbach / 范明 范宏建 / 人民邮电出版社 / 2006-01-01 / 49.00元

本书全面介绍了数据挖掘的理论和方法,旨在为读者提供将数据挖掘应用于实际问题所必需的知识。本书涵盖五个主题:数据、分类、关联分析、聚类和异常检测。除异常检测外,每个主题都包含两章:前面一章讲述基本概念、代表性算法和评估技术,后面一章较深入地讨论高级概念和算法。目的是使读者在透彻地理解数据挖掘基础的同时,还能了解更多重要的高级主题。此外,书中还提供了大量示例、图表和习题。 本书适合作为......一起来看看 《数据挖掘导论》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具