深圳做网站哪家公司好,公司简介模板500字,网络设计专业学什么,网站建设合同模版文章目录 数据类型简单#xff08;基本#xff09;数据类型#xff1a;4个小类复合数据类型#xff1a;2个小类特殊数据类型#xff1a;2个小类类型转换类型判断整数类型浮点类型布尔类型 运算符赋值运算符算术运算符比较运算符逻辑运算符连接运算符错误抑制符三目运算符自… 文章目录 数据类型简单基本数据类型4个小类复合数据类型2个小类特殊数据类型2个小类类型转换类型判断整数类型浮点类型布尔类型 运算符赋值运算符算术运算符比较运算符逻辑运算符连接运算符错误抑制符三目运算符自操作运算符 计算机码位运算运算符优先级问题 数据类型
数据类型data type在PHP中指的是存储的数据本身的类型而不是变量的类型。**PHP是一种弱类型语言变量本身没有数据类型。**在PHP中将数据分为三大类八小类
简单基本数据类型4个小类
整型int/integer系统分配4个字节存储表示整数类型有前提
浮点型float/double系统分配8个字节存储表示小数或者整型存不下的整数
字符串型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为1false为0
2.字符串转数值有自己的规则
2.1 以字母开头的字符串永远为0
2.2 以数字开头的字符串取到碰到字符串为止不会同时包含两个小数点
$a abc1.1.1;
$b 1.1.1.abc;echo $a $b; //自动转化 1.1
echo hr/,(float)$a,br/,(float)$b; #0 1.1类型判断
通过一组类型判断函数来判断变量最终返回这个变量所保存数据的数据类型相同结果为true失败为false是一组以is_开头后面跟类型名字的函数is_XXX(变量名)
bool类型不能用echo来查看可以使用var_dump结构查看
var_dump(变量1,变量2…)
$a abc1.1.1;
$b 1.1.1.abc;
var_dump(is_int($a)); #bool(false)
var_dump(is_string($b));#bool(true)还有一组函数可以用来获取以及设定数据变量的类型 Gettype(变量名)获取类型得到的是该类型对应的字符串 Settype(变量名,类型)设定数据类型与强制转换不同 1.强制转换(类型)变量名是对数据值复制的内容进行处理不会处理实际存储的内容2.settype会直接改变数据本身
$a abc1.1.1;
$b 1.1.1.abc;
echo gettype($a); #stringvar_dump(settype($b,int)); #bool(true) #settype设置类型成功返回true
echo gettype($b); #integar整数类型
整数类型保存整数数值范围限制4个字节存储数据最大就是32位2^32 42亿多(无符号数)。但是在PHP中默认是有符号类型区分正负数
在PHP中提供了四种整型的定义方式十进制定义二进制定义八进制定义和十六进制定义
$a1 120; //10进制
$a2 0b110; //2进制
$a3 0120; //8进制
$a4 0x120; //16进制
echo $a1,hr/, $a2,hr/, $a3,hr/, $a4,hr/; #120 6 80 288进制转换 十进制逢10进1能够出现的数字是0-9
二进制逢2进1能够出现的数字是0-1
八进制逢8进1能够出现的数字是0-7
十六进制逢16进1能够出现的数字是0-9以及a-fa表示10依次类推 PHP中不需要用户这么复杂的去计算提供了很多的函数进行转换 二进制bin 八进制oct 十进制dec 十六进制hex
decbin()十进制转二进制decoct()十进制转八进制dechex()十进制转十六进制bindec()二进制转十进制 浮点类型
浮点型小数类型以及超过整型所能存储范围的整数不保证精度精度范围大概在15个有效数字左右
浮点型定义有两种方式 $f 1.23; $f 1.23e10; //科学计数法其中e表示底10
$f1 1.23;
$f2 1.23e10;
var_dump($f1,$f2); #float(1.23) float(12300000000)尽量不用用浮点数做精确判断浮点数保存的数据不够精确而且在计算机中凡是小数基本上存的都不准确
$f1 0.7;
$f2 2.1 / 3;
var_dump($f1 $f2); #bool(false)布尔类型
布尔类型两个值true和false通常是用于判断比较。在进行某些数据判断的时候需要特别注意类型转换
empty()判断数据的值是否为“空”不是NULL如果为空返回true不为空返回falseisset()判断数据存储的变量本身是否存在存在变量返回true不存在返回false $a;
var_dump(isset($a)); //bool(false)
var_dump(empty($a)); //bool(true)$x NULL;
var_dump(isset($x)); //bool(false)
var_dump(empty($x)); //bool(true)运算符
运算符operator是一种将数据进行运算的特殊符号
赋值运算符
赋值运算符号是“”表示将右边的结果可以是变量、数据、常量和其它运算出来的结果保存到内存的某个位置然后将位置的内存地址赋值给左侧的变量常量。
算术运算符
算术运算基本算术操作
执行数据累加-数据相减* :键盘上没有乘法符号使用*代替两个数相乘/正斜杠代替表示两个数相除%取余模运算两个数整数相除保留余数
在进行除法运算或者取余运算的时候对应的除数第二个数不能为0 比较运算符
比较运算比较两个数据的大小或者两个内容是否相同返回的结果都是布尔类型满足返回true不满足返回false
左边大于右边返回结果true左边大于等于右边左边小于右边左边小于或者等于右边左边的与右边的相同大小相同!左边的与右边的不同大小不同全等于左边与右边相同大小以及数据的类型都要相同!不全等于只有大小或者类型不同
$a 123; //整形
$b 123;//字符串
var_dump($a $b); #bool(true)
var_dump($a $b); #bool(false) 大小和类型都要相同逻辑运算符
逻辑运算针对不同的结果进行匹配。满足条件返回true不满足返回false
逻辑与左边的条件与右边的条件同时成立两边结果都为true||逻辑或左边的条件或者右边的条件只要有一个满足即可逻辑非对已有条件进行取反本身为true取反结果就是false
逻辑与和逻辑或又称之为短路运算如果第一个表达式结果已经满足条件了那么就不会运行逻辑运算符后面的表达式 连接运算符
连接运算是PHP中将多个字符串拼接的一种符号
使用.可以将两个字符串连接到一起. 复合运算将左边的内容与右边的内容连接起来然重新赋值给左边变量
例如A . B A A.b
$a hello;
$b Mango;
echo $a.$b; #helloMangoecho hr/;
$a . $b;
echo $a; #helloMango错误抑制符
在PHP中有一些错误可以提前预知但是这些错误可能无法避免但是又不望报错给用户看可以使用错误抑制符处理。
在可能出错的表达式前面使用符号即可。
错误抑制符通常在生产环境上线会用到在开发的时候不会用系统本身最好没有任何错误。
$a 10;
$b 0;
($a / $b); //如果没有错误抑制报错Warning: Division by zero in D:\apache\htdocs\index.php on line 86三目运算符
三目运算有三个表达式参与的运算简单的的分支结构缩写
格式表达式1 ? 表达式2 表达式3
如果表达式1成立那么执行表达式2否则执行表达式3
注意如果表达式本身比较复杂建议使用括号包起来
$a 10;
$b $a 10 ? 20 : 10;
echo $b ; //20可以得知三目运算符的优先级比赋值运算符高
自操作运算符
后置自操作先把自己所保存的值留下来然后改变自己自己给别人的值是原来的值
前置自操作先把自己改变然后把改变后的值给别人。
$a 0;
$b 0;
echo $a,br/,$b; // 0 1
echo br/,$a,br/,$b;// 1 1衍生符号类似自操作 左边的结果与右边结果相加然后赋值给左边
-左边的减去右边的结果然后复制给左边
*乘法操作
/除法操作
%模操作
注意
1.右侧的内容是一个整体
$a 10;
$b 5;
$a - $b-1; //相当于$a $a - ($b-1)
echo $a;//62.如果进行除法或者取余运算那么要考虑右边表达式的结果是否为0为0出错 计算机码
计算机码计算机在实际存储数据的时候采用的二进制编码规则
计算机码原码、反码和补码数值本身最左边一位是用来充当符号位正数为0负数为1
位运算
按位与两个位都为1结果为1否则为0
|按位或两个有一个为1结果为1
~按位非一个位如果为1则变成0否则反之
^按位异或两个相同则为0不同则为1
按位左移整个位32位向左移动一位右边补0 乘以2的操作
按位右移整个位向右移动一位左边补符号位对应内容正数补0负数补1 除以2的操作不完全正确因为整数除2会出现小数 注意 1.系统进行任何位运算的时候都是使用的补码
2.运算结束之后都必须转换成原码才是最终要显示的数据 运算符优先级问题
运算符优先级在多种运算符同时存在的时候如何结合运算