加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

处理PHP中错误的办法

发布时间:2022-03-30 13:50:23 所属栏目:编程 来源:互联网
导读:已经玩php一段时间了,基本是from 0开始的,经常出现的问题也很多,慢慢的可以熟练的查询文档了,而且,经验也不是很多。 先look here。: error_reporting(1048);//1,2,4,7,...,1048 ob_start(); session_start(); date_default_timezone_set(Asia/Sha
  已经玩php一段时间了,基本是from 0开始的,经常出现的问题也很多,慢慢的可以熟练的查询文档了,而且,经验也不是很多。
 
  先look here。:
 
  error_reporting(1048);//1,2,4,7,...,1048
 
  ob_start();
 
  session_start();
 
  date_default_timezone_set('Asia/Shanghai');
 
  php的递给调用会吃掉很多的内存。
 
  一般的,不要太多的使用define。
 
  在类的构造和属性器方面,5已经做了很多的工作,克服的bug就不说了,__系列的函数都有一些看点,也是支持static的。
 
  按照我现在的写过的程序,很少用到框架页面的,我感觉在php里面速度不在是一个问题。
 
  注意类的调用次序,特别是已经extends的,准确的释放掉内存。
 
  @mysql_fetch_array($result,MYSQL_ASSOC);
 
  这个注意使用乱用,MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH是一个enum吧。默认的是MYSQL_BOTH.
 
  mysql的语句,如果执行in 的话不再支持limit。so...很麻烦。
 
  支持distinct,group之,程序循环执行,md。
 
  if(get_magic_quotes_gpc()){
 
  $_GET= stripslashes_gpc($_GET);
 
  $_POST= stripslashes_gpc($_POST);
 
  $_COOKIE= stripslashes_gpc($_COOKIE);
 
  }
  set_magic_quotes_runtime(0);#magic_quotes_runtime
 
  function stripslashes_gpc($array) {
 
  while (list($key,$value) = each($array)) {
 
  if (is_string($value)) {
 
  $array[$key] = addslashes(stripslashes($value));
 
  } else if (is_array($value)) {
 
  $array[$key] = stripslashes_gpc($value);
 
  }
 
  }
 
  return $array;
 
  }
 
  /**
 
  * 处理程序中出现的错误
 
  * @Date:2006-10-9-10:51
 
  * @param (类型) (参数名) (描述)
 
  */
  function Error_Handler($errno,$errstr,$errorfile,$errline,$errtext){
 
  echo('系统发生错误:'.$errstr);
 
  echo('At'.$errorfile.'的第'.$errline.'行.');
 
  if($errno==E_USER_ERROR){
 
  echo('致命错误,程序已经中止');
 
  }
 
  }
 
  在使用的时候:
 
  set_error_handler('Error_Handler');
 
  trigger_error('call trigger_error',E_USER_ERROR);
 
  这是使用函数获取的,当然您的错误报告级别应该高点:
 
  error_reporting(1048);
 
  为了更加oo,先看看一个描述类的自写的函数:
 
  $classname='Exception';
 
  /**
 
  * (功能描述)
 
  * @Date:
 
  * @param (类型) (参数名) (描述)
 
  */
 
  function ClassDetail($classname){
 
  if(!class_exists($classname)){
 
  echo($classname.'类不存在');
 
  }else{
 
  print_r("以下描述类".$classname);
 
  print_r("所有的方法<pre>");
 
  print_r(get_class_methods($classname));
 
  print_r("</pre>");
 
  print_r("<hr/>所有的属性<pre>");
 
  print_r(get_class_vars($classname));
 
  print_r("</pre><hr/>");
 
  }
 
  }
 
  ClassDetail($classname);
 
  发现exception类的所有get方法是:
 
  [0] => __construct
 
  [1] => getMessage
 
  [2] => getCode
 
  [3] => getFile
 
  [4] => getLine
 
  [5] => getTrace
 
  [6] => getTraceAsString
 
  [7] => __toString
 
  慢慢的优化个性点,也可以的。

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读