双引号解释变量,单引号不解释变量
双引号里插入单引号,其中单引号里如果有变量的话,变量解释
双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误
双引号解释转义字符,单引号不解释转义字符,但是解释 ' 和 \
能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)
$_GET - GET 请求方式
$_POST - POST 请求方式
$_REQUEST - 可以接收到 GET 和 POST 两种方式的值
$GLOBALS - 所有的变量都放在里面
$_FILES - 上传文件使用
$_SERVER - 系统环境变量
$_SESSION - 会话控制的时候会用到
$_COOKIE - 会话控制的时候会用到
HTTP 定义了与服务器交互的不同的方法,最基本的是 POST、GET、PUT、DELETE,与其比不可少的 URL 的全称是资源描述符,我们可以这样理解:URL 描述了一个网络上资源,而 POST、GET、PUT、DELETE 就是对这个资源进行增、查、改、删的操作!
GET 是把参数数据队列加到提交表单的 action 属性所指的 URL 中,值和表单内各个字段一一对应,从 URL 中可以看到;POST 是通过 HTTP POST 机制,将表单内各个字段与其内容防止在 HTML 的 head 中一起传送到 action 属性所指的 URL 地址,用户看不到这个过程
对于 GET 方式,服务器端用 Request.QueryString 获取变量的值,对于 POST 方式,服务器端用 Request.Form 获取提交的数据
GET 传送的数据量较小,POST 传送的数据量较大,一般被默认不受限制,GET 安全性非常低,POST 安全性较高
GET 请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
与 GET 不同的是,PUT 请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的 update 操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次 PUT 操作,其结果并没有不同。
POST 请求同 PUT 请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的 insert 操作一样,会创建新的内容。几乎目前所有的提交操作都是用 POST 请求的。
DELETE 请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的 delete 操作。
Hypertext Preprocessor——超文本预处理器
允许 Web 开发人员快速编写动态生成的 Web 页面,与其他页面相比,PHP 是将程序嵌入到 HTML 文档中去执行,效率比完全生成 HTML 编辑的 CGI 高很多
Hypertext Markup Language
php独特混合了 C,Java,Prel 以及 PHP 自创的语法
可以比 CGI 或者 Prel 更快速去执行动态网页,与其他变成语言相比,PHP 是将程序嵌入到 HTML 文档中去执行,执行效率比完全生成 HTML 编辑的 CGI 要高很多,所有的 CGI 都能实现
支持几乎所有流行的数据库以及操作系统
PHP 可以使用 C,C++ 进行程序的扩展
开放源代码
免费性
快捷性
跨平台强
效率高
图形处理
面向对象
专业专注
静态页面生成
数据库缓存
过程缓存
DIV + CSS W3C 标准
大负荷
分布式
flex
支持 MVC
模块引擎
echo、print 是 PHP 语句,var_dump 和 print_r 是函数
echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用
print 也是 PHP 的一个关键字,有返回值。只能打印出简单类型变量的值(如 int,string),如果字符串显示成功则返回 true,否则返回 false
print_r 可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以 array、object 开头,但 print_r 输出布尔值和 NULL 的结果没有意义,因为都是打印「\n」,因此 var_dump() 函数更适合调试
var_dump() 判断一个变量的类型和长度,并输出变量的数值
魔术引号是一个将自动将进入 PHP 脚本的数据进行转义的过程,最好在编码时不要转义而在运行时根据需要而转义
客户端:$_SERVER["REMOTE_ADDR"]
或者 getenv('REMOTE_ADDR')
ip2long
进行转换
服务器端:gethostbyname('www.baidu.com')
CVS、SVN、VSS、GIT
选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置 NOT NULL,例如「省份」、「性别」最好适用ENUM
使用连接(JOIN)来代替子查询
事务处理
锁定表、优化事务处理
建立索引
优化查询语句
确认服务器硬件是否能够支持当前的流量
数据库读写分离,优化数据表
程序功能规则,禁止外部的盗链
控制大文件的下载
使用不同主机分流主要流量
require 是无条件包含,也就是如果一个流程里加入 require,无论条件成立与否都会先执行 require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行
include 有返回值,而 require 没有(可能因为如此 require 的速度比 include 快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去
注意:包含文件不存在或者语法错误的时候 require 是致命的,而 include 不是
require_once 表示了只包含一次,避免了重复包含
由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图
变量默认总是传值赋值,那也就是说,当将一个表达式的值赋予一个变量时,整个表达式的值被赋值到目标变量,这意味着:当一个变量的赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量
PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,成为了其别名或者指向)了原始变量。改动的新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)
对象默认是传引用。对于较大是的数据,传引用比较好,这样可以节省内存的开销。