基础语法:
php是一门弱类型编程语言在.php文件中php代码需要包含在<?php 和 ?> 之间,html可以和php混合编写语句必须以;分号结束变量名前面必须包含$,变量名可以包含字母数字下划线, 但是不能以数字开头, 变量名区分大小写, 变量名不能与关键字相同数据类型:
标量类型:整型,浮点型,布尔型,字符串型复合类型:数组,对象特殊类型:资源,NULL伪类型:混合类型,数字类型,回调类型变量细节:
仅仅定义了变量但是没有赋值,这时候会提示undefined variable var_dump()查看会发现变量是null整型
十进制,十六进制0x, 八进制0不支持无符号整数, 也就是说整数都是有符号的PHP_INT_SIZE 整型值的字长 = 4 (字节)/32位PHP_INT_MAX 整型值的最大值 = 2147483647 (针对32位) 针对64位就更大了浮点数
浮点数也叫双精度数或实数浮点数的字长和平台有关,通常最大值是1.8E308 并且具有14位十进制数字的精度 (从左边第一个非0数字开始计算)字符串
字符串中一个字符占用一个字节字符串可以用单引号包裹,也可以用双引号包裹单引号包裹时反斜线解析单引号,双引号包裹时反斜线解析双引号双引号包裹的字符串中可以使用反斜线转义字符来转义特殊字符 \n \r \t \e \v \f \\ \" \$双引号包裹的字符串中的变量可以被解析单引号包裹时转义字符只认识\\和\' 这两种,其他都不转义。如果需要对字符串中的指定字符进行操作,可以使用{ }这个语法。{ } 这个语法是用来避免字符串中的变量解析时出现错误的常量
常量前面不需要$常量在定义的时候就需要赋初值,同时定义后就不能再修改值常量通过define或const进行定义常量的名称一般使用全部大写字母,中间可以用下划线分割常量的值只能是标量,在PHP7中允许使用数组作为常量的值可以使用constant(NAME)函数来获取常量的值常量分为系统常量,自定义常量,魔术常量。
PHP_VERSION
PHP_OS
PHP_INT_MAX
PHP_INT_SIZE
定义常量的语法
define("NAME", VALUE); 使用define定义时需要注意常量名称要加引号
const NAME = VALUE;
获取常量
constant("NAME"); 使用constant函数时常量名称也要加引号
get_defined_constant() 获取系统常量和自定义常量的数组
判断常量是否存在使用 defined("NAME");
魔术常量
魔术常量一共有八个
__LINE__
__FILE__
__DIR__
__FUNCTION__
__CLASS__
__METHOD__
__TRAIT__
__NAMESPACE__
类型转换
类型转换分为自动转换和强制转换,而在强制转换中又分为临时转换和永久转换。
自动转换
自动转换是指在进行运算或条件判断时,系统自动将两种不同类型进行转换,从而完成运算或条件判断。
1. 转换成布尔型
0,0.0,"","0",NULL,[ ] 都会转换成FALSE,其他都会转换成TRUE
2. 转换成整型
TRUE转换成1,FALSE转换成0
浮点型转换成整型,是通过向下取整。
字符串转换成整型,是通过从头开始解析直到遇见不合法的数值。
3. 转换成浮点型
字符串转换成浮点型,也是通过从头开始解析直到遇见不合法的数值。
其他类型都是先转换成整型,再转换成浮点型。
4. 转换成字符串
布尔类型TURE转换成"1" FALSE转换成""
整型和浮点型都会转换成字面量形式的字符串
数组转换成"array" 对象转换成"object" 资源转换成"Resource id #id" (这三种没有实际意义)
NULL转换成""
强制转换
1. 临时转换
通过(type)$var语法 或者是 转换函数 进行转换,具体有
(int) intval() / (float)(double)(real) floatval() doubleval() / (string) strval() / (bool) (boolean) boolval()
(unset) / (array) / (object)
2. 永久转换
通过settype()方式进行强制永久类型转换,settype($var, $type)
$type是字符串,可以取值范围 "integer" "float" "string" "boolean" "array" "object" "null"
如何判断数据类型呢? 通过 is_*这个系列函数进行判断。
is_int() is_integer() is_long() / is_float() is_double() is_real() / is_bool() / is_string() / is_array() / is_object() / is_callable() / is_resource() / is_null()
is_nan() / is_numeric() / is_scalar()
预定义变量
$GLOBALS
$_REQUEST
$_POST
$_GET
$_SERVER
$_FILES
$_ENV
$_SESSION
$_COOKIE