原文来自:http://www.cnblogs.com/sows/p/5995763.html (博客园的)风马一族 侵犯版本,后果自负javascript
回顾
什么是php以及php的发展史php
- 搭建web服务器
- apache:接收浏览器发出的请求以及返回结果(html)
- php: 处理php代码,操做数据库(mysql)
- mysql: 存储和处理数据
- apache配置php
- 加载:LoadModule php5_module php5apache...dll
- 分配: addType application/x-httpd-php .php
- php配置文件:PHPIniDir php配置文件路径
- php配置mysql
- 开启扩展:extension php_mysql.dll
- 增长扩展路径: extension_dir php_mysql.dll 所在的路径
- apache工做原理
- 静态页:apache拿到文件后直接读出内容交给浏览器
- php文件:apache拿到文件后交给php引擎处理,php把处理后生成的html文件交还给apache(php有可能操做数据库:利用mysql扩展),apache将获得的html内容返回浏览器
- web的工做原理(相似于4)
- 基于域名的虚拟主机配置:httpd.conf 加载httpd_vhost.conf,httpd_vhost.conf配置虚拟主机
- 注意
- 注释或者删除本来httpd_vhost.conf里的虚拟主机
- 必须配置一个或者以上的虚拟主机
- 须要增长一个localhost的虚拟主机
---------------------------------------------------------------------------------------html
PHP的工做
php是一种脚本语言,嵌入到html代码中。java
若是文件自己不以.php结尾的话,那么该文件apache不会交给php处理,因此会将php代码原封不动的交给浏览器,而浏览器又不能解析php代码,因此就不会输出最终php代码所须要执行的结果mysql
1:在html文件中嵌入php代码web

2. 在php文件中,html嵌入php代码sql

注意:凡是以.php结尾的文件,apache都会交给php引擎处理。php引擎是选择性处理,只处理php代码,不会处理其余非php代码数据库
---------------------------------------------------------------------------------------------------------------apache
php独立文件
没有其余代码(html),纯粹都是php代码。(不须要借助apache工做,只须要php引擎)须要使用php.exe文件去运行php文件数组

---------------------------------------------------------------------------------------------------------------
php基础知识
php标签
1. 经常使用标签
<?php
//php代码
?>
是最多见一种标签方式
2. php脚本标签
<script language="php">
//php代码
</script>
注意:脚本标签的方式不多用,由于容易与javascript的标签混淆
3. 短标签
PHP默认不支持短标签,须要在配置文件中设置 D:\service\php\php.ini
<?
//php代码
?>
效果

注意:默认的,php已经不支持短标签语法,须要在配置文件中开启
PHP注释
php注释有两大类:单选注释和块注释(多行)
- 单行注释有两种
- 双斜杠: //
- //输出 hello
- echo "hello";
- #号: #
- # 输入 hello
- echo "hello";
- 块注释 /* 注释内容 */
- /*
* 函数功能
* @param 参数解释
* @return 返回值解释
*
* @author 做者
* @2016-10-25
*/
- 效果

- 注意:PHP在解析PHP代码的时候,会跳过注释,不会保留注释信息
PHP变量
-
语法:$变量名
-
例子
-
$name
- $number
- $sex
- $age
- 变量命名规则
- 必须以$符号开始
- 变量名能够由字母,下划线和数字自由组合
- 不能以数字开头
- 能够是中文
- 变量命名一般须要见名之意
- 变量名字有多个单词组成的时候,可使用两种方式
- 驼峰法:schoolNameSex
- 下划线:school_name_sex
- php中变量通常是在定义的时候就赋值
- 语法错误
- 弱类型语言
- 指的是变量能够为任意类型,而不须要指定具体类型。
1、使用变量
直接使用变量便可:前提条件是当前变量已经被赋值(定义)
输出:echo $变量名;
判断:if( $变量名 == ‘值’)

2、修改变量
将原有变量进行从新赋值
//定义变量
$age = 20
//修改变量
$age =34
echo $age //34
3、删除变量
将变量所指向的值给释放掉(将变量自己释放)
unset(变量名)
//输出已经释放的变量
$age = 10;
unset($age)
echo $age //错误未定义

php常量
一旦被定义,就不能被修改,只能被使用的‘量’叫作常量。

一:语法
define('常量名',常量值);
二:常理使用的语法
- 直接使用常量名
- 不能加 $ 否则会出错误
三:常量的使用
-
- 某个值不须要变化的时候。例如数字常量PI
- 用于整个网站
- 凡是能使用常量去作的事情均可以使用变量去替代。常量是用来规范保证数据不被修改。

四:常量命名规则
- 常量不能使用$符号
- 其余命名规则与变量基本一致
- 常量命名一般使用所有大写字母,多单词的常量都是使用下划线方式。
- 常量与变量同样都区分大小写
五:变量与常量的内存原理图

六:php脚本执行结束后内存是如何处理的?
- 什么叫作PHP脚本执行结束?
指的是当PHP引擎将用户请求的某个php脚本文件(index.php)的最后一行PHP代码执行完毕,称之为脚本执行结束
- 脚本结束后内存如何处理?
PHP脚本所占用的全部内存都会被释放、被操做系统回收

七:注意
- 结束标签
- 结束符号能够不存在,条件是文件中的PHP代码后面没有其它语言的代码
- 结束符号若存在,则结束符号后面存在空格的话,空格会看成Html代码发出,后果是空格至关无用的代码,浪费带宽
- php代码嵌入html中,最好使用结束符号,减小错误出现
- 结束语句的结束符号: 英文符号 ;
- 若存在结束标签,最后一句中,能够不使用结束符号
- 若不存在结束符号,则每句都要使用结束符号
- 常量的定义比变量更加松散
- 变量与常量的命名建议
- 不使用中文使用变量名
- 全部的变量或者常量,都建议使用字母配合下划线的方式去实现,变量中还能够配合数字
-----------------------------------------
数据类型
数据类型是针对各类(变量)值而言,而不是针对变量自己
- PHP有三大数据类型:标量、复合、特殊 、
- 标量数据类型(简单数据类型)
- 整型
- int integer 、
- 整型在系统内存中占4个字节保存数据
- 浮点型
- float double(PHP没有这个)
- float占用8个字节(这是PHP规定的大小)
- 浮点数会丢失精度,于是一般不使用浮点数来比较大小
- 通常对于精确要求不是那么高的,可是数据又特别大时,可使用浮点数,其它状况通常使用整型
- 时间戳
- 从1970年到当前时间的秒数称之为时间戳
- php提供了一个函数:time()
- 获取时间戳
- 效果

- 使用Date() ,能够格式化时间
- 字符串 string
- 凡是带引号包好的字符均可以称之为字符串
- 字符串的表示方式
- 单引号
- 将字符串用单引号包裹起来
- 双引号
- 将字符串用双引号包裹起来
- 与单引号的不一样之处有:
- 双引号中可以使用更多的转义字符
- 可以解析PHP变量
- 在两个字符串链接,不出现空格的方法
- 使用点
- 使用中括号
- 效果

- 定界符
使用一种特殊的符号 <<< ,增长一对起始和结束标识来包括字符串
- 语法
$str=<<<EOD
//字符串
EOD; //这句话只能单独占用一行,且在行头处,不能有空格 (否则会出错)
- 效果

- 定界符使用规则
- 定界符的边界符号必须成对
- 右定界符必须顶格
- 两个定界符后面都不能跟任何其余内容
- 定界符的意义
- 为了让双引号对应的字符串在编写的时候查看
- 定界符可以在输出以后保证原来的数据格式
- heredoc结构就是以上所讲的定界符,对应双引号功能
$str=<<<eof
eof;
- nowdor结构也是以上结构,只是对应单引号功能
$str=<<<'eof'
eof;
- 佛日:单引号比双引号的字符串效率要高,由于单引号不须要去解析其中的变量等内容,只要直接输出便可。
- 布尔
- bool Boolean , 只有两个值true和false
- 效果 val_dump(值或变量) 用来测试变量或值的类型

- 哪些数据会被当作False处理?
- 须要经过比较的形式来判断是否为False
-
0:整型0
0.0:浮点0
‘0’:字符串0
null:空
‘’:空字符串
- 复合数据类型
- 数据
- 数组
- 特殊数据类型
- NULL: 定义的变量的值为NULL或者变量被删除
- 效果

- 资源: 全部外部数据的操做所有称之为资源类型数据
- 例如: PHP操做数据库中,mysql_connect链接成功返回的一个结果称之为资源(链接资源)
进制转换
二进制、八进制、十进制、十六进制等间的转化
系统预约义变量
系统定义的变量称之为预约义变量,预约义变量有9个
- $_POST: 接收用户表单post方式提交的全部数据
- $_GET: 接收用户表单get方式提交的全部数据
- $_REQUEST: 接收用户get方式,post方式提交的数据,还有cookie数据
- $_FILES:接收用户上传的文件信息
- $_SEEEION: 存放session数据(存放在服务器)
- $_COOKIE: 存放cookie数据(存放在浏览器)
- $_GLOBALS: 全局变量
- $_SERVER: 保存服务器信息 (掌握几个经常使用的数据)
- $_ENV: 保存系统环境信息
系统预约义常量
- PHP_OS: 操做系统内核
- PHP_VERSION: 当前PHP的版本
- PHP_INT_SIZE: int类型所占的字节数
- PHP_INT_MAX: int类型能表示的最大值
- 魔术常量: 能够自动变化的常量
- _FILE_: 当前脚本的文件路径(绝对路径)
- _LINE_: 当前所在的行数
- _DIR_: 当前脚本所在的目录 (PHP4才有)
- _FUNCTION_: 当前函数的名字
- _METHOD_: 当前方法的名字(类中的函数)
可变变量
经过一个获得一个变量的值,将该值再次当作一个变量名从而获得另一个变量的值
即变量的值,看成另个值的变量

传值
变量间的赋值
- 变量间的传值分为两种:值传递和引用传递
- 值传递
- 将一个变量的值赋值一份,而后赋值给新的变量
- 一个变量的变动不会影响另一个变量的变动

- 引用传递
- 将一个变量的地址赋值给新的变量
- 在给变量赋值的时候,使用地址符号&得到一个变量的地址
- unset 原理
- 图解

- 交换变量值 (两个变量都是整数)
- 使用第三个变量来让两个变量的值的交换
- 不使用第三个变量交换两个变量的值