已經玩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
慢慢的優化個性點,也可以的。
ok,來看比較oo的處理方式:
class ErrorHandlers extends Exception{
private $_context = null;
function __construct($level, $string, $file, $line, $context=null){
parent::__construct($string,$level);
$this->file = $file;
$this->line = $line;
$this->_level = $level;
$this->_context = $context;
}
function __destruct(){
// parent::__destruct();
}
function Message(){
$errors = array(
E_ERROR => error,
E_WARNING => warning,
E_PARSE => parsing error,
E_NOTICE => notice,
E_CORE_ERROR => core error,
E_CORE_WARNING => core warning,
E_COMPILE_ERROR => compile error,
E_COMPILE_WARNING => compile warning,