这块内容,我们以2个例子,向大家展示php错误处理的用法。
例1,
<?php //打开一个文件 未做任何处理 //$fp =fopen("aa.txt","r"); //echo "OK"; //处理:判断文件是否存在 file_exists //by www. /* if(!file_exists("aa.txt")){ echo "文件不存在"; //不存在就退出 exit(); //退出后,下面面的代码就不执行了 }else{ $fp =fopen("aa.txt","r"); //...操作完之后 关闭 fclose($fp); } echo "OK"; */ //PHP处理错误的3种方法 //第一种:使用简单的die语句 /* if(!file_exists("aa.txt")){ die("文件不存在。。。"); //不存在就直接退出 }else{ $fp =fopen("aa.txt","r"); //...操作完之后 关闭 fclose($fp); } echo "OK"; */ //更简单的方式 file_exists("aa.txt") or die("文件不存在"); ?>
例2、
<?php //第二种:错误处理器 错误级别 处理错误方式 /* 使用error_function(error_level,error_message, error_file,error_line,error_context) 该函数必须有能力处理至少两个参数 (error level 和 error message), 但是可以接受最多五个参数(可选的:file, line-number 以及 error context): */ //改写set_error_handler方法 //如果出现 E_WARNING 这个错误就调用my_error 处理方法 set_error_handler("my_error",E_WARNING); set_error_handler("my_error2",E_USER_ERROR); //设置中国对应的时区 date_default_timezone_set('PRC'); function my_error($errno,$errmes){ echo "<font size='5' color='red' >$errno</font>"; //输出错误报告级别 echo "错误信息是:".$errmes; exit(); } function my_error2($errno,$errmes){ //echo "错误信息是:".$errno,$errmes; //exit(); //把错误信息输入到文本中保存已备查看 使用到error_log()函数 $message ="错误信息是:".$errno." ".$errmes; error_log(date("Y-m-d G:i:s")."---".$message."\r\n",3,"myerror.txt"); // \r\n 表示换行 } //打开一个文件 未做任何处理 //$fp =fopen("aa.txt","r"); //echo "OK"; //使用自定义错误 要添加触发器 这个trigger_error()函数来指定调用自定义的错误 $age=200; if($age>150){ //echo "年龄过大"; //调用触发器 同时指定错误级别 这里需要查看帮助文档 trigger_error("不好了出大问题了",E_USER_ERROR); //exit(); } ?>
感谢大家关注php入门教程,本系列的php基础教程将帮助php新手朋友,快速掌握php这门编程语言。
将继续为大家推出php相关教程,祝大家学习进步!
语法:
整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。
八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
例1,
<?php //php数据类型 //by www. $int1=100; //十进制 $int2=-123; //负数 $int3=0123; //八进制数 $int4=0x1A;//十六进制数 echo PHP_INT_SIZE; //显示一个整数用几个字节来表示 echo "<br/>"; echo PHP_INT_MAX;echo "<br/>";//整数最大有多少数 (2147483647) $fmax=2147483648; var_dump(PHP_INT_MAX); //一个数超出了 integer 的范围,将会被解释为 float类型。 echo "<br/>"; var_dump($fmax); ?>
浮点数 :浮点数(双精度数或实数)
<?php $a=1.34; $b=1.8e308; $c=8e-10; var_dump($b); //浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(不能超过14位) //精度要从左边开始的第一个非0的数字计算. //如: $a=567.9999899 //输出567.9999899 $b=789.8812345678543 //输出789.88123456785 $c=0.000000008907777777 //输出0.000000008907777777 ?>
重要理解:精度要从左边开始的第一个非0的数字计算.
布尔类型是PHP中 最简单的类型。它的值可以为 TRUE 或 FALSE。
如:
<?php $foo=false; $foo1=true; echo "为假时输出值为:".$foo; //没有输出值 echo "<br />为真时输出值为:".$foo1; //输出1
细节:
当转换为 boolean 时,以下值被认为是 FALSE :
1、the 布尔值 FALSE 自身
2、the 整型值 0 (零)
3、the 浮点型值 0.0 (零) 空 字符串, 以及 字符串 "0"
4、不包括任何元素的数组
5、不包括任何成员变量的对象(仅PHP 4.0 适用)
6、特殊类型 NULL (包括尚未设定的变量)
7、从没有任何标记(tags)的XML文档生成的SimpleXML 对象
<?php //$a=0; //$a=0.0; $a="0"; var_dump((bool) 0); echo "<br />"; var_dump((bool) array()); if($a==false){ echo "空0默认转换为false,成功!"; }else{ echo "不能转换为false"; }
输出:
bool(false)
bool(false) 空0默认转换为false,成功!
感谢大家关注php入门教程,本系列的php基础教程将帮助php新手朋友,快速掌握php这门编程语言。
将继续为大家推出php相关教程,祝大家学习进步!
PHP 有三大流程控制:顺序控制,分支控制,循环控制。
1、顺序控制:就是程序按顺序从上往下一步一步的执行。
2、分支控制:程序有选择的执行。又分单分支,多分支,多重分支。
a、单分支:基本语法结构:
if(条件表达式){
语句;
//.....;
} 提示:条件表达式不管有多复杂,最终就是true或者false;
例1,
<?php a=11; if(a>10){ echo "a>10"; }//by www.
b、多分支:基本语法:
if(条件表达式){
语句;
//.....;
}else{
语句;
//.....;
}
c、多重分支:基本语法:
if(条件表达式){
语句;n个语句;
}else if(条件表达式){
语句;n个语句;
}elseif(条件表达式){
语句;n个语句;
}eles{
语句;n个语句;
} 提示:1、else if 可以有一个 也可以有多个。2、最后那个else可以没有
d、switch分支语句
switch(表达式){
case 常量1:
语句;n个语句;
break;
case 常量2:
语句;n个语句;
break;
case 常量3:
语句;n个语句;
break;
default:
语句;n个语句;
break;
}
注意:
1、case 语句有一到多
2、defaul 语句可以没有(根据自己代码的业务逻辑)
3、通常,在case 语句后,要带break ,表示退出switch语句
4、常量的类型 (int, float, 字符串, 布尔型)
重点:程序首先按照case顺序进行配置,如果一个都没有匹配到,则执行 default语句的内容,直到遇到break,则退出switch;
if 和 switch 分支比较:
if 对某个范围的判断,而switch是对一个点的判断, 所以我们可以这样去选择他们:
应用场景: 当分支就是几个点的时候(比如判断坦克的方向),就应当使用swtich ,如果分支是几个区域(范围)的判断,则考虑使用if。
有关php控制流程控制的相关内容,大家还可以参考下php文档中的介绍:If...else,php循环,switch。
感谢大家关注php入门教程,本系列的php基础教程将帮助php新手朋友,快速掌握php这门编程语言。
将继续为大家推出php相关教程,祝大家学习进步!