php学习笔记-P1-2PHP基础-1
标记和注释、语句分隔符、变量、变量命名规则、预定义变量、可变变量、变量传值、常量、系统常量、数据类型、类型转换、类型判断、整数类型和进制、进制转换、浮点型、布尔型
一、标记与注释
- php是一种运行在服务器的脚本语言,可以嵌入HTML中
php代码标记
- ASP标记:
<% php代码 %>,弃用,可以在配置文件中开启:asp_open_tag = off - 短标记:
<? php代码 ?>,弃用,可以在配置文件中开启:short_open_tag = off - 脚本标记:
<script laugague="php">php代码</php>,容易跟前端代码搞混了 - 标准标记(常用):
<?php php代码 ?>
- ASP标记:
注释:
- 行注释:
//、# - 块注释:
/* 多行注释 */
注释内容会在PHP解析的时候忽略
- 行注释:
二、语句分隔符
语句分隔符:判断行的结束
- 分号:
; - 标记结束符
?>有语句分隔符的效果,不建议
php文档最后一个标记结束符通常省略,可以节省带宽(标记结束符后面的内容会当作html)
- 分号:
三、变量
变量:用来存储数据的一个容器,特点:
- 存储数据
- 有名字
- 通过名字访问数据
- 可以改变数据
变量使用:
- 定义:在系统中添加变量名字(内存)
- 赋值:把数据值赋给变量(定义的时候也可以进行赋值)
- 访问数据
- 修改数据
- 删除变量:
unset($var);
四、变量命名规则、预定义变量、可变变量
变量命名规则
- 必须以
$开头 - 由字母、数字和下划线
_构成,不能以数字开头 - 允许中文变量,不建议
- 必须以
预定义变量(系统定义,都是数组)
- $_GET:获取get方式提交的表单数据
- $_POST:获取post方式提交的表单数据
- $_REQUEST:获取GET和POST方式提交的表单数据
- $_GLOBALS:PHP中所有的全局变量
- $_SERVER:服务器信息
- $_SESSION:session会话信息
- $_COOKIE:cookie会话信息
- $_ENV:环境信息
- $_FILES:用户上传的文件信息
可变变量:一个变量保存的值是另一个变量的名字,可以直接通过一个变量访问另一个变量的值,加多一个
$符号$a = 'b'; $b = 'bb'; echo $$a; // 输出:bb
五、变量传值
变量传值:将一个变量赋值给另一个变量
- 值传递:复制一份值,传递另一个变量,两个变量没有关系

- 引用传递:将变量地址传递给另一个变量,两个变量指向同一数据(内存地址),指向同一个值
$新变量 = &$旧变量;

- 值传递:复制一份值,传递另一个变量,两个变量没有关系
内存分区
- 栈区:程序可以操作的内存部分(不存数据,运行程序代码),速度快
- 代码段:存储程序的内存部分(不执行)
- 数据段:存储普通数据(全局区和静态区)
- 堆区:存储复杂数据,大但效率低
六、常量
- 常量:const/constant,在程序运行中,不能改变的量(数据)
定义:
define('常量名','常量值');const 常量名 = 常量值;,php5.3之后才有
二者定义的常量访问权限有区别
命名规则:
- 不需要使用
$开头,否则会被识别为变量 - 由字母、数字和下划线组成,不能以数字开头
- 通常以大写字母为主(与变量区别开)
比变量松散,可以使用一些特殊字符,该方式只能使用
define定义define('-_-','smile'); const -_- = smail; // 报错
- 不需要使用
使用:与变量一样,不能修改
- 特殊字符的情况:访问常量的函数:
constant('-_-');
- 特殊字符的情况:访问常量的函数:
常量和变量的使用情况
- 数据可能会变化的,只能用变量
- 数据不一定会变化的,可以用常量也可以用变量(变量居多)
- 数据不允许被修改的,只能用常量
七、系统常量
常用的:
PHP_VERSION:PHP版本号PHP_INT_SIZE:整型大小(字节)PHP_INT_MAX:整型的最大值
PHP中整型允许出现负数
魔术常量:双下划线 + 常量名 + 双下划线,会跟着环境变化,但是用户改不了
__DIR__:当前被执行脚本所在电脑的绝对路径__FILE__:当前被执行脚本所在电脑的绝对路径(带文件名)__LINE__:当前所属的行__NAMESPACE__:当前所属的命名空间__CLASS__:当前所属的类__METHOD__:当前所属的方法
八、数据类型
数据类型:数据本身的类型
php是弱类型语言,变量没有数据类型
分类:三大类八小类
简单(基本)数据类型:
- 整型:int/integer,4个字节,表示整数
- 浮点型:float/double,8个字节,表示小数或整型存不下的数
- 字符串类型:string,根据实际长度分配空间,表示字符串(引号)
- 布尔类型:bool/boolean,表示布尔类型,只有两个值:
true、false
复合数据类型:
- 对象:object,存放对象(面向对象)
- 数组:array,一次性存放多个数据
特殊数据类型:
- 资源类型:resource,存放资源数据(PHP外部数据:数据库、文件等)
- 空类型:NULL,只有一个值:
NULL,不能运算
九、类型转换
- 类型转换:将一个类型的数据转换成另外一个数据类型
方式:
- 自动转换:系统自动转换,效率偏低
- 强制转换(手动):在变量前加入括号,写上要转换成的数据类型,复制数据,不会改变数据本身
常用转换:
- 转bool类型(判断),规则见下图红框

转数值类型(算术计算)
- 布尔
true为1,false为0 字符串转数值规则:
- 以字符串开头的,永远为0
- 以数字开头的,按照数字的格式从头开始提取数字(不能同时保护两个小数点)
- 布尔
- 转bool类型(判断),规则见下图红框
十、类型判断
类型判断:通过一组函数进行判断,返回
true或者false,格式:is_xxx(变量名称)bool类型不能用
echo查看,可以使用var_dump查看获取和设置变量数据类型
gettype(变量名):获取类型,返回类型字符串settype(变量名,'数据类型'):设置类型,会改变数据本身
十一、整数类型和进制
- 整数类型:存储整数,4个字节,最大32位,42亿多,有符号,区分正负数
整型进制:4种
- 十进制:
$a = 120;,逢十进一,0-9 - 二进制:
$a = 0b110;,逢二进一,0-1 - 八进制:
$a = 0120;,逢八进一,0-7 - 十六进制:
$a = 0x120;,逢十六进一,0-9A-F
php默认输出数值都显示十进制
- 十进制:
十二、进制转换
进制转换:手动转换
- 十进制转二进制:除二取余法

- 十进制转二进制:将数值写成2的N次方和的格式,取出最大的2的N次方,直到结果为0,没有的位置补0
- 二进制转十进制:改写为2的N次方和的格式,求和
系统整数占4个字节,不够的位置需要补0
- 十进制转二进制:除二取余法
进制转换函数:
decbin:十进制转二进制decoct:十进制转八进制dechex:十进制转十六进制- 其他格式以此类推
十三、浮点型和布尔型
浮点型:超过整型粗出范围,不保证精度,不超过15个有效数字
$a = 1.23; $b = 1.23e10; $c = PHP_INT_MAX + 1; // 超过整型范围后编程浮点型- 同样的字节数,为什么浮点数比整数可以表示更大的数?

浮点数的指数格式表示的数值更大 浮点数不精确,精确判断尽量不要用浮点数,计算机中的小数点存的基本上都不精确
// 浮点数判断 $a = 0.7; $b = 2.1; $c = $b / 3; var_dump($a == $c); // 输出false布尔类型:只有2个值:
true、false,通常用于判断- 常用判断函数:
empty,is_set,in_null
- 常用判断函数:
评论已关闭