【PHP】02 基础 P1
PHP是一个运行在服务端的脚本语言,可以嵌入HTML中
1、PHP嵌入的代码标记:
ASP标记:弃用 【需要在PHP.INI中开启配置】
<% php-code %>
短标记:弃用【需要在PHP.INI中开启配置】
<? php-code ?>
脚本标记
<script language="php"> php-code </script>
目前通用标记:
<?php php-code ?>
2、注释操作:
// 行注释
# 行注释
/* 块注释 */
3、预定义变量【内嵌对象?】
$_GET 以GET请求方式的数据封装的变量,
$_POST 以POST请求方式的数据封装的变量,
$_REQUEST 上述两种方式的数据都封装的变量
$_SERVER 服务器信息变量
$_SESSION 服务端session存储的封装的变量
$_COOKIE 客户端cookie存储的封装的变量
$GLOBAL 当前PHP脚本文件的全局变量
$ENV PHP脚本所在的环境信息
$FILES 用户上传的文件信息
4、可变变量【指针?】
描述:变量A的变量名称【以字符串的形式】被变量B存储,通过 $ + 变量B的名称 访问变量A的值
$variableA = 100; $variableB = 'variableA'; echo $$variableB;

5、值传递 & 引用传递
值传递:声明另一个变量A并且赋值了10,但是与此同时把变量A赋值声明的变量B。
变量A和变量B所指向的内存空间是独立的,也就是变量B重新开辟空间把A的值存储了进来
<?php $a = 10; $b = $a; echo $a,' ',$b, ' '; $b = 20; echo $a,' ',$b, ' '; ?>
引用传递:声明另一个变量A并且赋值了10,变量B被赋值的是& + 变量A
意思是把变量A指向内存空间的地址赋值给了变量的指向,相当于这个内存空间,被两个变量指向
指向 === 引用
<?php $a = 10; $b = &$a; echo $a,' ',$b, ' '; $b = 20; echo $a,' ',$b, ' '; ?>
6、常量
# 常量和变量性质一样,保存值 # 称号 Const & Constant 在程序运行中不可改变 # 两种定义方式 【5.3版本 + 】 # 1、使用 define函数实现 define('常量名称',常量值,(是否忽略大小写)) # 2、5.3版本+ const 常量名称 = 值; define("PI", 3.14, true); // TRUE 表示忽略大小写, FALSE 默认的,区分大小写 const STATUS_TRUE = 0;
系统常量
PHP_VERSION:PHP版本号 PHP_INT_SIZE:整型大小。(1字节8位。32位4字节,64位8字节) PHP_INT_MAX:整型能表示的最大值(PHP中整型是允许出现负数:带符号)
魔术常量
他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:
魔术常量的值通常会跟着环境变化,但是用户改变不了
__DIR__:当前被执行的脚本所在电脑的绝对路径 __FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字) __LINE__:当前所属的行数 __NAMESPACE__:当前所属的命名空间 __CLASS__:当前所属的类 __METHOD__:当前所属的方法
7、数据类型
数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。
PHP是一种弱类型语言,变量本身没有数据类型。
在PHP中将数据分为三大类八小类:
简单(基本)数据类型:4个小类
整型:int/integer,系统分配4个字节存储,表示整数类型(有前提) 浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数(比如32位存不下的整型) 字符串型:string,系统根据实际长度分配,表示字符串(引号) 布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false
复合数据类型:2个小类
对象类型:object,存放对象(面向对象) 数组类型:array,存储多个数据(一次性)
特殊数据类型:2个小类
资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件) 空类型:NULL,只有一个值就是NULL(不能运算)
类型转换
类型转换:在很多的条件下,需要指定的数据类型,需要外部数据(当前PHP取得的数据),转换成目标数据类型
在PHP中有两种类型转换方式:
1、 自动转换:系统根据需求自己判定,自己转换(用的比较多,系统自己判断需要的类型,效率偏低) 2、 强制(手动)转换:认为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer….其中NULL类型用到unset()
在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)
其他类型转布尔类型:true或者false,在PHP中比较少类型会变成false

其他类型转数值的说明
1、 布尔true为1,false为0; 2、 字符串转数值有自己的规则 1)以字母开头的字符串,永远为0; 2)以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)

类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):
是一组以is_开头后面跟类型名字的函数:
is_XXX(变量名)
Bool类型不能用echo来查看(不能分辨是字符串的true还是bool的true),可以使用var_dump结构查看
Var_dump(变量1,变量2…)

还有一组函数可以用来获取以及设定数据(变量)的类型
Gettype(变量名):获取类型,得到的是该类型对应的字符串

Settype(变量名,类型)(返回bool值表示转换成功与否):设定数据类型:与强制转换不同
1)强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容) 2)settype会直接改变数据本身

8、整型
整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)
在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义
$a = 120; //10进制 $a = 0b110; //2进制 0b开头 b:binary $a = 0120; //8进制 0开头 $a = 0x120; //16进制 0x开头
进制转换:
PHP中不需要用户这么复杂的去计算,提供了很多的函数进行转换
Decbin():十进制转二进制 Decoct():十进制转八进制 Dechex():十进制转十六进制 Bindec():二进制转十进制
9、浮点类型
浮点型:小数类型以及超过整型所能存储范围的整数(不保证精度),精度范围大概在15个有效数字左右
浮点型定义有两种方式:
$f = 1.23; $f = 1.23e10; //科学计数法,其中e表示底10。1.23*10^10
简单说明浮点数为什么同样的字节数存储数据,但是却能表示更大的数据呢?
00000000 00000000 00000000 00000000 à 11111111 11111111 11111111 1111111 (整型最大值:所有位都是有效数据)
浮点数:红色7位算的结果是10的指数,后面三个字节存储表示具体数值
00000000 00000000 00000000 00000000 à 11111111 11111111 11111111 1111111
最后的结果是后三个字节的值*10的指数,这样就能表示更大的数据。也正因此所以浮点数保存的数据不够精确
尽量不要用浮点数做精确判断:浮点数保存的数据不够精确,而且在计算机中凡是小数基本上存的都不准确

10、布尔类型
布尔类型:两个值true和false,通常是用于判断比较
在进行某些数据判断的时候,需要特别注意类型转换
Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false Isset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false


浙公网安备 33010602011771号