PHP入门part2
PHP的数据类型
php数据类型分为三大类,
标量类型:整型、浮点型、布尔型和字符串型
复合类型:数组型和对象(object)
特殊类型:空类型和资源型 !资源型以后会讲
整形(int)就是整数的数值。
有三种表现形式:十进制,八进制,十六进制。
浮点型(float)就是小数点
有两种表现形式:小数形式:3.14 -0.756
指数形式:就是科学技术法 4.5e6=4.5x106 -5.9E-2=-5.9x10-2
!!!最好不要使用浮点数进行比较!因为浮点数会造成数据精度的丢失!
布尔型:只有两个值,true、false !不区分大小写
整型0:0
浮点0:0.0
字符串0:‘0’
空字符串:‘’,注意‘ ’(里面是空格)会当成true来处理
空类型:NULL
空数组:array()
上面这些都会得出false; !资源型和对象型在进行条件判断的时候永远为真
字符串型:
PHP中有四种定义字符串的方式,大家比较熟悉的就是使用单引号和双引号来定义!
双引号和单引号的区别;
单引号:
单引号不能解析其中的变量!
如果字符串中又出现了单引号,需要对单引号进行转义!转义字符:\
双引号:双引号能解析其中的变量。
如果字符串里面出现了变量,最好使用变量定界符对变量进行包裹!变量定界符:{$string} !这里的{}只是一种语法形式,不属于字符串的一部分
NULL类型:
把一个变量直接赋值为NULL
使用一个没有定义或者被删除(unset)掉的一个变量
强制返回一个没有返回值的函数的时候
上面都是会出现NULL类型。
recourse资源型:
PHP如果要使用外部数据,就是采用资源的方式来进行管理!
php是弱类型语言,随时都在发生类型的转换,类型转换可以分两种一个是自动转换另一个是强制转换
!!自由转换和强制转换都不会改变原来的数据类型。
自动转换:字符串类型自动转换为数值类型 !如果字符串不是以数值部分开头,在参与运算的时候当成0来处理
其他类型自动转换为布尔型
整型0:0
浮点0:0.0
字符串0:’0’
空字符串:’’
空类型:NULL
空数组:array()
上面的都会得出false
强制转换:
语法:(目标类型)原始数据
(int)转换为整数类型 (float)转换为浮点数类型 (string)转换为字符串类型 (array)转换为数组类型 (bool)或(boolean)转换为布尔类型
(object)转换为对象类型
!!无法将一个数据强制转换为null型和资源型;对于(array)是将后面的数据项强制转换为该数组的第一个元素;
!!但是,这种并不是增加数组元素的一种语法,因为先将原数组清空,再把后面的数据转换为当前数组的第一个元素;
!!对于(object),其实就是将后面的数据转换为该对象的一个属性。
函数的原型
函数返回值类型 函数名(参数1类型 参数1,参数2类型 参数2……)
!!任何一个函数,都要考虑它是否有返回值以及该返回值的类型,如果该函数没有返回值,就用void来表示!
!!如果函数参数的类型或者函数返回值的类型有很多个,就用mixed来代替,意思就是混合类型,也叫作“伪类型”
gettype:
语法:stringtype(mixed $var)
返回一个数据项(变量或常量或表达式)的类型!由于php一共有8种类型,一般认为它的返回值有8种!
settype:
语法:bool settype(mixed&$var,string $type)
设置一个数据项(变量或常量或表达式)的类型!
需要两个参数:第一个需要转换的数据项;第二个是需要转成什么样的类型
如果转换成功,就返回true,如果转换失败,就返回false!
!!这里的转换是真的把原数据的值和类型都转换了
isset:
语法:bool isset(mixed&$var,[mixed $…])
判断一个变量是否存在!
存在就返回true,不存在就返回false!
另外,isset还可以用来判断一个数组的某个元素是否存在!以及对象的属性是否存在!
empty:
语法:bool empty(mixed $var)
判断一个变量是否为空,如果为空就返回true,如果不为空就返回false!
和isset的判断类型相反,可以理解为isset得出的false就是empty的true。
is_type系列:
该系列函数的作用是判断一个变量是否为函数所指定的类型,返回一个布尔值!这里都是严格判断,在判断的时候不会进行类型的自动转换!
is_int或is_integer
is_float或is_double double是双精度
is_numeric 判断是否是一个数值类型等于is_int + in_float!如果一个字符串是一个数字字符串(里面全部为数字),也当成是一个数值型数据来处理!
is_bool
is_string
is_scalar scalar是标量的意思,等于is_int+is_bool+is_float+is_string
is_array
is_NULL
is_object
is_resource
PHP入门part2的更多相关文章
- Zato入门part2
Zato入门part1 参考1 前提:从part已经建立了集群.服务框架并成功的调用了服务.现在我们通过HTTP.ZeroMQ和JSON使用外部服务. 除非坚持手工调用,否则服务从来不知道什么确切的U ...
- ReactiveCocoa入门-part2
ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术.在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号.你还学到了如何转换 ...
- maven入门--part2 安装
Maven安装和配置 (1)下载安装文件apache-maven-3.03-bin.tar (2)解压至安装目录,安装完毕 (3)修改.bash_profile,修改maven安装路径,修改构建GC配 ...
- 知识图谱与机器学习|KG入门 -- Part2 建立知识图谱
介绍 在本系列前面两篇文章中我一直在讨论Data Fabric,并给出了一些关于Data Fabric中的机器学习和深度学习的概念.并给出了我对Data Fabric的定义: Data Fabric是 ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Spring boot 1.3.5 RELEASE 官方文档中文翻译--Part2:新手入门
Part II. 新手入门 如果你刚刚开始学习Spring boot或"普通"的Spring,这部分非常适合你!在这里,我们回答了最基础的"什么是?".&quo ...
- 【PyTorch深度学习60分钟快速入门 】Part2:Autograd自动化微分
在PyTorch中,集中于所有神经网络的是autograd包.首先,我们简要地看一下此工具包,然后我们将训练第一个神经网络. autograd包为张量的所有操作提供了自动微分.它是一个运行式定义的 ...
- django入门-模型-part2
尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6511177.html 完全翻译自官方文档 https://docs.djangoproje ...
- C语言编程入门之--第五章C语言基本运算和表达式-part2
5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序. 注意:stdin是输 ...
随机推荐
- 最短路径——Floyd算法
如何求一张图中任意两顶点之间的最短路径长度,这里写一种最简单的算法——Floyd算法: #include<stdio.h> #define inf 9999 int main() { ][ ...
- Java—常用数据类型
1 Vector类 Vector类似于一个数组,但与数组相比在使用上有以下两个优点. (1) 使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加. (2) Vector提供额外的方 ...
- html基本标签结构
简单的html5的基本架构 HTML全称为HyperText Markup Language,一款写给浏览器的语言. HyperText:超文本(文本,图片,视频,音频,链接) Markup Lanu ...
- [双连通分量] POJ 3694 Network
Network Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 9434 Accepted: 3511 Descripti ...
- sqlserver存储过程批量插入数据
在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...
- c++英文单词频度统计程序
英文单词频度统计程序(c++版) 写一个程序,分析一个文本文件(英文文章)中各个次出现的频率,并且把频率最高的十个词打印出来. 分析过程: (1) 简单设想大致分为两大步骤: 1.经过文本文件的读操 ...
- cocoapods 更新失败 bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
http://blog.csdn.net/dark_gmn/article/details/49274993 ERROR: Could not find a valid gem 'cocoapods ...
- Debian 8(jessie)下设置系统启动直接进入命令行,无GUI
修改grub项 sudo vi /etc/default/grub 修改其中三项 ... GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLI ...
- 关于ASP.NET页面打印技术的总结【转】
B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印 ...
- UIImageView变灰
1.UIImageView圆角 CALayer *l = [cell.imgAvatarImage layer]; [l setMasksToBounds:YES]; [l setCornerRadi ...