- PHP常见的运行模式
- CLI:就是命令行模式,参考链接:https://php.net/manual/zh/features.commandline.php
- mod_php:即apache的php模块。把php嵌入到apache中,相当于给apache加入了解析php文件的功能
- CGI (不太了解)
- FastCGI(不太了解)
-
GET和POST的区别
get:把参数放在URL中,有长度限制。
POST:请求的数据理论上没有长度限制。
在HTTP头中,GET和POST请求都是可见的。
两者的请求都是不安全的, 如果对安全性有需求需要加密,一般使用客户端安全控件或SSL。 -
该怎么选择cookie和session
- session的内容保存在服务端。但是它有个id是保存在客户端cookie
- cookie纯粹保存在客户端。浏览器禁止cookie则无法使用
- cookie没有session安全
- PHP的缓存的用法
- 用xml静态文件保存序列化后的array数据
- 直接生成html文件
- 使用memcached等第三方缓存
- 数据库做缓存表处理
- Alternative PHP Cache((可选PHP缓存),XCache缓存器
- include 和 require的区别
- require 和 include 几乎完全一样,除了处理失败的方式不同之外。
- require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止。
- include 只产生警告(E_WARNING),脚本会继续运行。
- include_once 语句只会包含一次指定文件
- 如果是引用静态文件,建议使用file_get_contents
- empty、isset的区别
- empty 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.
以下的东西被认为是空的:
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
- isset 如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
global
关键字和$GLOBALS[]
- global在函数产生一个指向函数外部变量的别名变量,而不是真正的外部变量。
- $GLOBALS[]和外部的变量是同一个变量,函数内外会始终保持一致。