首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP开发小技巧

PHP开发小技巧

作者头像
乔千
发布于 2020-04-16 07:07:02
发布于 2020-04-16 07:07:02
2.5K00
代码可运行
举报
运行总次数:0
代码可运行

前言

最近接触了typecho 所以PHP肯定就离不开手了 这里记录一些平常开发的一些小技巧

莫名的用户bug

不要只处理error,而忽略warning和notice,这可能会导致日后的莫名其妙的问题,项目在开发状态下应该是error_reporting( E_ALL  ^  E_NOTICE ),等到发布的外网生产环境时,应关闭所有错误报告display_errors=Off,error_reporting(0) 这样好处有很多 避免输出一堆notice 同时规范了你的语法习惯

echo printf

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目录搜寻时间 当然这点速度也许无用 但是在层层引用中导致工作目录变化 相对路径会炸的

引用细节

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   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(); 这样能将三行代码简单压缩到一行 利用好运算符有时候能使代码更加精简

利用逻辑运算符和if实际例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <?php 
function authorized($username, $page) {
if (!isBlacklisted($username)) {
if (isAdmin($username) ||       isAllowed($username, $page)) {
return TRUE;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
?> 

这段代码显然鸡肋了 我们只需要

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <?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官方提供的一个全局变量。

总结

逻辑要灵活,高效优质的代码才能写出来

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验