PHP 代码标记
1. asp <% php 代码 %>
2. 短标记<? php代码 ?>
3. 脚本标记
4. 标准标记(常用)<?php php代码 ?>

PHP 注释
行注释
#.............//............
块注释
/**/
PHP 变量
分隔符
;
php中标记结束符?>有自带语句结束符的效果
变量的使用
- 定义:在系统中增加对于的名字(内存)
- 赋值:可以将数值赋值给变量名
- 可以通过变量名访问存储的数据
- 可以将变量从内存中删除 unset()
① 删除变量源存储数据 
② 没有删除变量源数据
变量名规则
- 在php中变量名由 “$”符号开头
- 名字由字母,数字,下划线构成,但不能以数字开头
- php 本身允许中文变量(不建议)
预定义变量
提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有的表单以get方式提交的数据
$_POST:POST 提交的数据都会保存在此
$_REQUEST:GET 和 POST 提交的都会保存
$_GLOBALS:PHP 中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session 会话数据
$_COOKIE:cookie 会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
可变变量
由 php 从右到左执行导致
<?php$a = 'xx';$xx = 'xiaosheng';// $a = 'xx' ==> $$a==>$xx ==> 'xiaosheng'echo $$a;?>

变量传值
- 值传递
复制的值
- 引用传递
复制的数据地址
在内存中,通常有以下几个分区
栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快
代码段:存储程序的内存部分(不执行)
数据段:存储普通数据(全局区和静态区)
堆区:存储复杂数据,大但是效率低
PHP 常量
常量的定义
在 php 中有两种定义方式(5.3 之后才有)
① 使用定义常量的函数:define(“常量名” ,常量值)
② 5.3之后才有的:const 常量名 = 值
命名规则
- 常量不需要使用“$”符号,一旦使用系统就是认为是变量;
- 常量的名字由数字,字母,下划线构成,不能以数字开头;
- 常量的名字通常以大写的名字为主;
- 常量命名的规则比变量松散,可以使用一些特殊字符,该方式只能使用 define 定义

【注】:
① Define 和 const 定义的常量是有区别的:在于访问权限区别
② 定义常量通常不区分大小写,但也能区分,参照define函数的第三个参数
常量使用形式
常量的使用和变量一样,但不可改变值
有时候还需要另外一种形式来访问(特殊名字的常量)访问常量的函数:constant( '常量名' )
系统常量
系统帮助用户定义的常量,用户可以直接使用
常见的几个系统变量:
PHP_VERSION : PHP 版本号
PHP_INT_SIZE:整形大小
PHP_INT_MAX:整形能表示的最大值
在 PHP 中华友一些特殊的常量,他们由 双下划线+常量名+双下划线 结束,这种常量称之系统魔术常量:魔术常量的值通常会跟着环境的变化,但是用户改变不了
DIR :当前被执行的脚本所在电脑的绝对路径
FILE:当前被执行的脚本所在的电脑的绝对路径(带自己的文件的名字)
LINE:当前所属的行数
NAMESPACE:当前所属的命名空间
CLASS:当前所属的类
METHOD:当前所属的方法
数据类型
数据类型
简单(基本)数据类型:4个小类
整形 :int/integer,系统分配4个字节存储,表示整数类型
浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数
字符型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolen,表示布尔类型,只有两个值:true 和 false
复合数据类型:2个小类
对象类型:object,存放对象(面向对象)
数组对象:array,存储多个数据(一次性)
特殊数据类型:2个小类
资源类型:resourse,存放资源数据(PHP 外部数据,如数据库、文件)
空类型:NULL,只有一个值就是NULL(不能运算)
类型转换
在很多条件下,需要指定的数据类型,需要外部数据(当前 PHP 取得的数据),转换成目标数据类型
在 PHP 中有两种数据类型转换方式:
- 自动转换:系统根据需求自动判定,自己转换(用的比较多,效率偏低)
- 强制(手动)转换:认为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer其中NULL 类型用到 unset()
在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算数运算)
其他类型转布尔类型:true 或者 false,在 PHP 中比较少 类型转换编程false
其他类型转数值的说明
- 布尔 true 为1,false 为0
- 字符串转数值有自己的规则
2.1 以字母开头的字符串,永远为 0;
2.2 以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)
类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为 true,失败为false):是一组is_开头后面跟类型名字的函数:is_XXX(变量名)<br />Bool 类型不能用 echo 来查看,可以使用 var_dump 结构查看<br />Var_dump( 变量1,变量2...)<br /><br />还有一组函数可以用来获取以及设定数据(变量)的类型<br />**Gettype( 变量名 )**:获取类型,得到的是该类型对应的字符串<br />**Settype( 变量名 )**:设定数据类型,是对数据值复制的内容进行处理(不会处理实际的存储内容)<br />1.强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)<br />2.Settype 会直接改变数据本身<br />
整数类型进制
十进制:逢 10 进 1 ,0~9
二进制:逢 2 进 1 ,0~1
八进制:逢 8 进 1,0~7
十六进制:逢 16 进 1,0~9 及 a~f
进制转换
PHP 中 不需要用户这么复杂的运算,提供了很多函数进行运算
Decbin():十进制转二进制
Decoct():十进制转八进制
Dechex():十进制转十六进制
Bindec():二进制转十进制
。。。。
浮点类型
浮点型:小数类型及超过整型所能存储范围的整数(不保证精度),进度范围大概在15个有效数字左右
浮点型定义有两种方式:
$f = 1.23;
$f = 1.23e10; //科学计数法,其中 e 表示底 10
$f = PHP_INT_MAX + 1;
布尔类型
布尔类型:两个值true 和 false,通常是用于判断比较
在进行某些数据判断的时候,需要特别注意类型转换
Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false
lsset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false

