欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php流程控制语句以及条件判断中的数据类型转换

程序员文章站 2022-05-03 19:58:33
...
php流程控制语句以及条件判断中的数据类型转换

php的流程控制语句包括循环体语句和分支判断语句。

循环操作包括三组语句,分别是while、do-while、for循环。

分支判断体包括两组:if else语句、switch语句。

以下以几个题目来理解php流程控制语句以及条件判断中的数据类型转换。

***********************************************

题目一、if-else语句与条件判断涉及的数据类型转换

***********************************************

";
	if("0")
		echo "true";
	else
		echo "false-2"."
"; if($i) echo "true"; else echo "false-3"."
"; if("false") echo "true"; else echo "false-4"."
"; if(false) echo "true"; else echo "false-5"."
"; if(0.0) echo "true"; else echo "false-6"."
"; if(php) echo "true"; else echo "false-7"."
"; if("") echo "true"; else echo "false-8"."
"; if(null) echo "true"; else echo "false-9"."
"; if(array(12)) echo "true"; else echo "false-10"."
"; if(array()) echo "true"; else echo "false-11"."
"; /* 输出结果: false-1 false-2 false-3 true false-5 false-6 true false-8 false-9 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语句的关系

***********************************************

";
		case 6:
			echo "??";	
		case '8':
			echo "|||";
		case 10:
			echo "10"."
"; break;//如果去掉此break将输出default分支的@@ default: echo "@@"; break; } /* 运行结果为: six ??|||10 分析:请注意以上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语句和数据类型自动转换的问题

***********************************************

***********************************************

题目四、编程中的疏忽易错点——比较运算符和赋值运算符的差异

***********************************************

通过以上四个例子,我们在php基础语法的前提下,更好的理解php语言在使用中的规则,尤其是php流程控制语句以及条件判断中的数据类型转换。这些知识的掌握有利于养成良好的代码编写习惯,规避一些现实中的陷阱,提高开发效率。

相关标签: php php基础