复习PHP-语言参考-类型
1. PHP内置类型有
四种标量类型 bool int float(或称double) string
两种复合类型 array object
两种特殊类型 resource NULL
2.相关命令
查看类型 gettype
判断类型 is_xxx
强制转换类型 (xxx)变量 或者settype
获取变量的当前类型值
xxxval();
如intval,boolval,floatval,strval
is_numeric检测变量是否为数字或数字字符串
3.详细介绍
-------------------------------------
bool:TRUE or FALSE
以下值被认为是FALSE
bool false
int 0
float 0.0
string “” or “0”
arrray []
NULL null或尚未被赋值的变量
从空标记生成的SimpleXML对象
其他都是TRUE(包括任何source资源)
注意:-1和其他非零值(不论正负都为TRUE)
所以可扩展为 -1>false为真
--------------------------------------
integer:集合{…-2,-1,0,1,2}中的一个数
二进制,十六进制,八进制均为int类型标量
注意:二进制表达的integer在5.4起可用
二进制 0b
八进制 0
十六进制 0x
注意:32位电脑的int占4个字节,每个字节8个单元,所以最大值为21亿左右,64位为9223372036854775807,计算方式为最大的正数是 01..1 后面31个1, 结果是 2147483647,最小的负数是 10...0后面31个0, 计算方法是用补码, 结果是 -2147483648, 而0xffffffff 是 -1
注意:如果向八进制传递一个非法数字(8,9)则本位以及后面的位将会被忽略(如012954)的八进制值为012,十进制值为10
注意:如果INT溢出将会被自动转换为float类型
注意:不要将未知的分数强制转换为int,不然结果将会不可预料
如(int) ( (0.1+0.7) * 10 )的值为7,而不是8.
--------------------------------------
float:浮点的形式有以下几种
LNUM [0-9]+ DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*) EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
浮点的长度与平台设置有关
注意:永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。因为只要浮点数换算成二进制是无穷尽的,那么它的实际值是略小于它本身的,如0.1实际值为0.0999999…(二进制为0.000110011001100…),如何要比较两浮点数是否相等,可以控制精度为小数点后XX位 如0.000001,然后将两数相减和此极小值比较,如果小于此值,则认为在XXX位精度的情况下,这两个浮点数是相等的。
注意:有时数学运算的结果为NaN,它代表任何不同值,所以不能用于与其他任何类型值比较(包括自身),可用is_nan判断。
注意:INF是无穷大的意思。
--------------------------------------
string:邮一系列的字符组成,每个字符占一个字节,因此PHP只支持256的字符集,不支持unicode。
表示方式为‘’,“”,<<<‘eof’xxxeof(xxx中的变量不会被解析),<<<“eof”xxxeof(xxx中的变量可以被解析).
提示:string最大可以达到2GB。
提示:PHP_EOL代表换行。
提示:string中的变量最好用{}括起来。
{}可扩展至类静态变量:{${beers::$ale}},{${beers::softdrink}}
提示:PHP 的字符串在内部是字节组成的数组。因此string可以被当作Array处理,每一个字符可当作一个元素。
注意:用超出字符串长度的下标写入将会拉长该字符串并以空格填充。 如$a = "abc“ 如果操作$a[4] = “d”,那么字符串长度将会被扩展到5,下标3的位置将会以空格填充。
注意:下标必须为整数或可转换为整数的字符串。
大部分PHP值(除了resource)可以转变成STRING,即串行化,可用serialize来实现。
--------------------------------------
array:是一个有序映射。
5.4起用[]代替array()。
键名如果是合法整型值的字符串,会被转换,“8”=8,但“08”不能被转换,因为它不是合法的十进制。
浮点键名会被转换为整型,但小数会被舍去。
布尔键名会被转换为0,1。
null键名被转换为“”。
数组和对象不能成为键名。
如果出现相同的键名,则后面的会覆盖前面的。
新建,修改,删除(unset)。
--------------------------------------
object:新建一个对象 new abc;
将其他任何类型的值转换为对象,将会产生一个public scalar属性,值为变量的值。(数组转换为obj将会得到与数组结构相同的,元素都为public的对象)
--------------------------------------
resource:一种特殊变量,保存到外部资源的一个引用。
常用函数为:get_resource_type取得资源类型。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
自动回收,所以不必手动销毁,但持久数据库连接比较特殊,它不会被回收掉。
--------------------------------------
NULL:表示NULL。
被赋值为NULL,尚未被赋值,UNSET 都会得到NULL。
使用 (unset) $var 将一个变量转换为 null 将不会删除该变量或 unset 其值。仅是返回 NULL 值而已。
--------------------------------------
callback回调类型:call_user_func call_user_func_array 实际运用中才得知。
--------------------------------------
字符与ascii之间的转换可用函数(C++可直接将字符转换为INT取得节ascii码)
ord,chr
4.类型转换的判别
进制转换的函数为:base_convert(值,当前进制,目标进制)
提示:如果字符串转进制则当前进制和目标进制都一样 如base_convert("0b11",2,2);则可转换成二进制,但需要理解的是,转换后的类型仍然是string,但可以进行位运算了。
如果有一个是float,则运算都转为float。否则都是int
注意:转换为二进制(binary)
转载于:https://blog.51cto.com/laoqian/1399734
复习PHP-语言参考-类型相关推荐
- 现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇
最近计划把 PHP手册,认真的先过一遍.记录一些以前不知道,不明确的知识. 语言参考 > 类型 [新认知]强制转换类型用 settype( mixed $var, string $type ). ...
- ASP.NET MVC 3 Razor 多国语言参考解决方案 补充四
ASP.NET MVC 3 Razor 多国语言参考解决方案 补充四 转自 http://www.cnblogs.com/think8848/archive/2011/07/05/2098464.ht ...
- C语言删掉无关变量无输出,C语言变量类型与输出控制用法实例教程
本文实例讲述了C语言变量类型与输出控制用法,有助于读者很好的对其进行总结与归纳.该实例分享给大家供大家参考借鉴之用.具体如下: 完整实例代码如下: /************************* ...
- Impala SQL 语言参考
2019独角兽企业重金招聘Python工程师标准>>> Impala SQL 语言参考 Cloudera Impala 的查询语言是基于 SQL 的.为了保护用户在技能和查询设计方面 ...
- cc++语言参考手册_C ++值类别快速参考:第2部分
c&c++语言参考手册 ← Go to Part 1 ← 转到第1部分 将参数传递给函数 (Passing parameters to a function) When passing par ...
- php语言开始和结束分别为,PHP语言参考
PHP语言参考 从此开始,以后的内容均学习自PHP手册(https://www.php.net/manual/zh) 基本语法 当解析一个文件时,PHP 会寻找起始和结束标记,也就是php和,这告诉 ...
- 如何快速复习C语言知识点
如何快速复习C语言知识点 如何快速复习C语言知识点 如何快速复习C语言知识点 1. 数据类型 1.1 基本类型 1.2 构造类型 1.3指针类型 2.输入输出和运算符 3.控制语句 3.1选择结构 3 ...
- python - references 之 python语言参考手册目录
python 语言参考手册 官方文档link: https://docs.python.org/zh-cn/3/reference/index.html 目录 1. 概述 1.1. 其他实现 1.2. ...
- 复习C语言指针---函数指针
复习C语言指针-函数指针 文章目录 复习C语言指针---函数指针 函数 函数指针 函数指针数组 回调函数 结束语 函数 一个函数表达式其实是不存在直接的"()"操作符的," ...
最新文章
- Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising)
- Handler消息机制(八):Handler内存泄漏的场景有哪些,如何避免
- macsv服务器状态,和利时macs问题(启动服务器无法读出控制器的点名)
- Linux下用netstat查看网络状态、端口状态
- 【杂谈】购言有三签名纪念版书籍,送1~3副有三AI学习扑克牌
- OneAlert 入门(一)——事件流
- WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类
- mysql多个外键删除设置_Mysql在删除集上使用多个外键创建表
- Linq to sql 增删改查
- js判断是否微信浏览器
- linux配置网桥,Linux下通过brctl配置网桥
- 夜神模拟器+Xposed框架+JustTrustMe(用来禁用、绕过 SSL 证书检查)来突破SSL Pinning
- 开启并定制 Apache 显示目录索引样式
- ajax访问websever经验
- No1.初来乍到,请多指教
- WPS如何将金额快速改为万元显示
- win10网络图标变成地球加禁止符号但能上网解决办法
- 基于互质阵的DOA估计
- HCIP之路IPV6
- Giscus,由 GitHub Discussions驱动的评论系统
热门文章
- linux或Jetson nano上安装torchvision或安装pillow报错:The headers or library files could not be found for jpeg
- es中的AllocationService
- 给一个由n个单词组成的字符串排序
- PHP-Zend引擎剖析之Hello World(二)
- hdu1.3.2 Rank
- ViewFlipper的使用
- 正则表达式基本语法详解
- elasticsearch的映射(mapping)和分析(analysis)
- Dreamer 3.0 支持json、xml、文件上传
- linux嵌套字幕工具,Linux(NAS通用)下自动匹配射手字幕脚本