最近接触了typecho 所以PHP肯定就离不开手了 这里记录一些平常开发的一些小技巧
不要只处理error,而忽略warning和notice,这可能会导致日后的莫名其妙的问题,项目在开发状态下应该是error_reporting( E_ALL ^ E_NOTICE ),等到发布的外网生产环境时,应关闭所有错误报告display_errors=Off,error_reporting(0) 这样好处有很多 避免输出一堆notice 同时规范了你的语法习惯
echo效率比printf高 而且支持多重参数,用逗号进行隔开 例如echo d1,d2;
例如一堆函数 进行图片转换 提供的接口是类似 img_jpgtopng格式的函数我们只需要temp_func="img_".ex_to;temp_img=
在可以用file_get(put)_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get(put)_contents,因为它的效率高得多。
不管是 include还是什么函数引入文件使用绝对路径比使用相对路径引用速度高 因为这样可以减少PHP目录搜寻时间 当然这点速度也许无用 但是在层层引用中导致工作目录变化 相对路径会炸的
function load_class($class_name) { //path to the class file $path = ROOT . '/lib/' . $class_name . '.php'); require_once( $path ); }
如果你一个个引用我觉得有点原始人的操作了 使用函数辅助引用 可以增加代码可读性 害
在开发环境中, 我们打印的各种调试信息, 而一旦问题解决, 我们注释或删除它们. 然而更好的做法是保留调试代码,设计一个常量保存是否为debug模式 是的话就启用调试代码 这样的好处当然有的 方便后续调试 包括用户上报bug 之类
多元操作避免大量成块状的if else代码 这样能够提高代码可读性 例如 isset($img_file)?webp():fopen(); 这样能将三行代码简单压缩到一行 利用好运算符有时候能使代码更加精简
<?php
function authorized($username, $page) {
if (!isBlacklisted($username)) {
if (isAdmin($username) || isAllowed($username, $page)) {
return TRUE;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
?>
这段代码显然鸡肋了 我们只需要
<?php
function authorized($username, $page) {
return (!isBlacklisted($username) && (isAdmin($username) || isAllowed($username, $page));
}
?>
是不是一个非常简单,将一个臃肿的函数压缩到只剩return
如果你并不能理解魔术方法 使用这种花哨的操作在线上,刀剑上的舞蹈,改天就被rm删库
row[’id’] 的速度是row[id]的7倍。
如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time(),这是PHP官方提供的一个全局变量。
逻辑要灵活,高效优质的代码才能写出来