php 代码标记
1、asp 标记 <% echo ‘hello world2’; %> 需要在配置文件http.conf中开启 asp_tags = Off
2、短标记 <? echo 'hello world2'; ?> 需要在配置文件http.conf中开启 short_open_tag = Off
3、脚本标记
4、标准标记 <?php echo 'hello world' ?> 用的最多
注释及分隔符
单行注释
//注释
# 注释
多行注释
/*
多行注释
多行注释
php 分隔符
代码以行为单位 英文分号“;” 标识一行的结束,最后一行可以不加分号
变量
1、变量定义
PHP中的所有变量都必须使用“$”符号
命名规则:由字母、数字、下划线构成但是不能以数字开头. 本身允许中文变量但是不建议使用
$var1 =1;
$var2 =$var1;
echo 'var1='.$var1.';var2='.$var2;
预定义变量:
$_GET:获取所有表单以get方式提交的数据
$_POST:POST提交的数据都会保存在此
$_REQUEST:GET和POST提交的都会保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
F
I
L
E
S
:
用
户
上
传
的
文
件
信
息
2
、
可
变
变
量
如
果
一
个
变
量
保
存
的
值
刚
好
是
另
外
一
个
变
量
的
名
字
,
那
么
可
以
直
接
通
过
访
问
一
个
变
量
得
到
另
外
一
个
变
量
的
值
:
在
变
量
前
面
再
多
加
一
个
_FILES:用户上传的文件信息 2、可变变量 如果一个变量保存的值刚好是另外一个变量的名字, 那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个
FILES:用户上传的文件信息2、可变变量如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个符号。
//可变变量
$a = 'b';
$b = 'bb';
echo $$a //输出bb
3、变量传值
变量传值一共有两种方式:值传递,引用传递
值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存
引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间
$a =10;
$b = $a;
$b = 5;
echo $a,$b; //10 5
$c =10;
$d = &$c;
$c =5;
echo $c,$d //5 5
常量
1、定义及使用
在PHP中常量有两种定义方式(5.3之后才有两种)
1) 使用定义常量的函数:define(‘常量名’,常量值);
2) 5.3之后才有的:const 常量名 = 值;
define('PI',3.14);
const PI2=3.141;
echo PI,PI2; //3.14 3.141
define ('-_-','123'); //define可以定义特殊常量
//const -_-1 = '123' 会报错
echo constant('-_-');
//echo -_- //会报错
2、常用的几个系统常量
PHP_VERSION:PHP版本号
PHP_INT_SIZE:整型大小。(1字节8位。32位4字节,64位8字节)
PHP_INT_MAX:整型能表示的最大值(PHP中整型是允许出现负数:带符号)
3、魔术常量
在PHP中还有一些特殊的常量,他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了
__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
echo __NAMESPACE__,__DIR__,__FILE__,__LINE__ //D:\greenPro\apache\host1D:\greenPro\apache\host1\varandremark.php104
数据类型
php的八种数据类型
简单(基本)数据类型:4个小类
整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)
浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数(比如32位存不下的整型)
字符串型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false
复合数据类型:2个小类
对象类型:object,存放对象(面向对象)
数组类型:array,存储多个数据(一次性)
特殊数据类型:2个小类
资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件)
空类型:NULL,只有一个值就是NULL(不能运算)
类型转换
自动转换:系统根据需求自己判定,自己转换(用的比较多,系统自己判断需要的类型,效率偏低)
强制转换:人为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer….其中NULL类型用到unset()
布尔true为1,false为0
字符串转数值有自己的规则
以字母开头的字符串,永远为0
以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)
$a = 'abc1.1.1';
$b = '1.1.1bbb';
echo (int) $a; //0
echo (int) $b;//1
echo (float) $a; //0
echo (float) $b;//1.1
类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):
is_XXX(变量名)
Bool类型不能用echo来查看(不能分辨是字符串的true还是bool的true),可以使用var_dump结构查看
$a = 'abc1.1.1';
$b = '1.1.1bbb';
var_dump(is_int($a));//bool(false)
var_dump(is_string($a));//bool(true)
获取类型
Gettype(变量名):获取类型,得到的是该类型对应的字符串
$a = 'abc1.1.1';
$b = '1.1.1bbb';
echo (Gettype($a))//string
设置类型
Settype(变量名,类型)(返回bool值表示转换成功与否):设定数据类型:与强制转换不同
1)强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)
2)settype会直接改变数据本身
$b = '1.1.1bbb';
echo (Gettype($b));//string
var_dump(settype($b,'int'));//bool(true)
echo (Gettype($b));//integer
echo $b;//1
整数类型
保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)
PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义
$a = 120; //10进制
$b=0b110; //2进制 0b开头 b:binary
$c=0120; //8进制 0开头
$d=0x120; //16进制 0x开头
echo $b." ".$d // 6 288
Decbin():十进制转二进制
Decoct():十进制转八进制
Dechex():十进制转十六进制
Bindec():二进制转十进制
var_dump(decbin(200))//string(8) "11001000"
浮点类型
小数类型以及超过整型所能存储范围的整数(不保证精度)
浮点型定义有两种方式
$f = 1.23;
$f = 1.23e10; //科学计数法,其中e表示底10。1.23*10^10
尽量不要用浮点数做精确判断:浮点数保存的数据不够精确,而且在计算机中凡是小数基本上存的都不准确
布尔类型
两个值true和false,通常是用于判断比较
在进行某些数据判断的时候,需要特别注意类型转换
Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false
Isset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false