phpphp所有的数据类型型判断函数有哪些

php数据类型判断函数有哪些
php数据类型判断函数有哪些
  复制代码 代码如下:  is_bool()、is_float()、is_int()、is_string()、is_object()、is_array() 和 is_integer()。
注意当判断 is_numeric() 检测变量是否为数字或数字字符串 有别 is_integer()
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&2570人阅读
PHP语言(45)
php的流程控制语句包括循环体语句和分支判断语句。
循环操作包括三组语句,分别是while、do-while、for循环。
分支判断体包括两组:if else语句、switch语句。
以下以几个题目来理解php流程控制语句以及条件判断中的数据类型转换。
***********************************************
题目一、if-else语句与条件判断涉及的数据类型转换
***********************************************
/*1。写出下列代码的运行结果*/
echo &true&;
echo &false-1&.&&br /&&;
echo &true&;
echo &false-2&.&&br /&&;
echo &true&;
echo &false-3&.&&br /&&;
if(&false&)
echo &true&;
echo &false-4&.&&br /&&;
echo &true&;
echo &false-5&.&&br /&&;
echo &true&;
echo &false-6&.&&br /&&;
echo &true&;
echo &false-7&.&&br /&&;
echo &true&;
echo &false-8&.&&br /&&;
echo &true&;
echo &false-9&.&&br /&&;
if(array(12))
echo &true&;
echo &false-10&.&&br /&&;
if(array())
echo &true&;
echo &false-11&.&&br /&&;
输出结果:
true false-5
true false-8
true false-11
分析:if语句当条件不满足(即条件表达式计算结果为false)都会返回假。php的if语句没有then,有elseif(同else if)
当转换为boolean时候,以下值被认为是false:
1)布尔值false;
2)整型值0(零);
3)浮点型值0.0(零);
4)空白字符串和字符串“0”;
5)没有成员变量的数组;
6)没有单元的对象(仅适用于PHP4);
7)特殊类型NULL(包括尚未设定的变量);
***********************************************
题目二、switch-case-default语句与break语句的关系
***********************************************
/*2。写出下列代码的运行结果*/
$a = &linux&;
switch($a){
//echo &hello&;
case 'lamp':
echo &one&;
echo &five&;
case 'linux'://用不用引号均可
echo &six&.&&br /&&;
echo &??&;
echo &|||&;
echo &10&.&&br /&&;
//如果去掉此break将输出default分支的@@
echo &@@&;
运行结果为:
分析:请注意以上switch-case-default语句中,有的地方是没有break语句的。
①default在所有case开关中,总是最后执行。
②一旦switch的条件判断进入了一个开关(包括default),如果这个开关里面没有break跳出语句,则这个开关之后的语句被当做普通程序语句来执行,直到遇到break为止(比如:如果条件满足了case 2开关,而case 2开关里面没有break语句,则case 2之后的语句被当做普通程序语句执行,case判断不再有效。)。而如果进入的这个开关里面有break语句,则执行完之后就跳出switch。
③当前一语句的case语句为空时候,控制器自动转移到下一case语句。
由此可见,使用switch的时候,如果case里面没有break,这个程序是相当危险的,这其中潜伏着的漏洞即使经验丰富的测试人员也可能很难发现。
参考w3school的解释:
工作原理:
1、对表达式(通常是变量)进行一次计算
2、把表达式的值与结构中 case 的值进行比较
3、如果存在匹配,则执行与 case 关联的代码
4、代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
5、如果没有 case 为真,则使用 default 语句
***********************************************
题目三、switch-case-default语句和数据类型自动转换的问题
***********************************************
/*3。写出下列代码的运行结果*/
$a = &abc&;
switch ($a) {
echo &a 为 0&;
case &cdef&:
echo &a 为 cdef&;
case &abc&:
echo &a 为 abc&;
echo &a 什么都不是&;
/*输出结果:a 为 0
这个问题应该从PHP作为动态脚本语言说起:
动态语言的变量类型是随存储的变量而变化的,即变量类型是根据具体环境而进行变化的。
字符串&abc&,从表面来看可能指确切字符串,但是对于PHP存储的时候它是不能确定的,因为随着语义的变化,其所起的作用也会变化
第一个case 0:,PHP脚本将常量0解释为确切的整数,与字符串比较大小时,需要将字符串转换为整数。PHP脚本解释器会自动将字符串abc,从十进制(默认)转换为数字,但是abc很明显不能代表十进制数,即转换失败,此时PHP将结果置为0,如果将字符串表示为&0xabc&,那么PHP脚本能够发现0x标识,将abc作为十六进制转换,所以能够得到abc标识的十六进制整数。
如果学过C语言,可以做一个简单比较:
C中的case必须是数字常量,而不能是字符串,就因为C是变量类型确定的,运行时不能将确定的变量按语义随意转换。而PHP可以,因为PHP语言是动态的,变量类型是动态的。
或者从PHP的例子中学习:
如果一个文件将111111字符串(不是数字)存储到文件,然后从文件直接读取到变量$a,如下语法就可以将$a作为整数计算:0+$a
上述表达式得到的结果也可以作为动态语言的一个变现来看
***********************************************
题目四、编程中的疏忽易错点——比较运算符和赋值运算符的差异
***********************************************
/*4。写出下列代码的运行结果*/
if($i = &&){
/* 输出结果:b
这里的条件表达式不是比较运算符==,而是赋值运算符=,显然,空字符串和字符串0都为false。
通过以上四个例子,我们在php基础语法的前提下,更好的理解php语言在使用中的规则,尤其是php流程控制语句以及条件判断中的数据类型转换。这些知识的掌握有利于养成良好的代码编写习惯,规避一些现实中的陷阱,提高开发效率。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2751242次
积分:11069
积分:11069
排名:第1302名
原创:120篇
转载:45篇
评论:162条
(1)(1)(1)(1)(1)(3)(1)(2)(1)(1)(1)(1)(1)(1)(1)(3)(2)(6)(6)(6)(12)(7)(5)(13)(10)(12)(22)(5)(1)(13)(5)(6)(5)(3)(2)(1)(3)(1)php数据类型判断函数有哪些
字体:[ ] 类型:转载 时间:
php数据类型判断时需要注意的是is_numeric() 检测变量是否为数字或数字字符串有别 is_integer()
代码如下: is_bool()、is_float()、is_int()、is_string()、is_object()、is_array() 和 is_integer()。
注意当判断 is_numeric() 检测变量是否为数字或数字字符串 有别 is_integer()
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具//变量是否已经声明
//变量是否为空
defined():                       //常量是否已经定义 define()
array_key_exists(mixed key, array search):
//检查给定的键名或索引是否存在于数组中
is_numeric ( mixed var ):
//检测变量是 否为数字或数字字符串
is_bool():
// 检测变量是否是布尔型
is_float():
// 检测变量是否是浮点型 和is_double,is_real()都一样的用法
// 检测变量是否是整数is_integer() 一样的 用法
is_string():
// 检测变量是否是字符串
is_object():
// 检测变量是否是一个对象
is_array():
// 检测变量是否是数组
is_null():
// 检测变量是否为 NULL 值是否是NULL大小写敏感
阅读(...) 评论()

我要回帖

更多关于 php数据类型有哪些 的文章

 

随机推荐