如何优化PHP代码
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了如何优化PHP代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言这是一个后台用户列表的搜索功能搜索条件可否并行是
千家信息网最后更新 2026年11月02日如何优化PHP代码
这篇文章主要介绍了如何优化PHP代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
前言
这是一个后台用户列表的搜索功能
| 搜索条件 | 可否并行 | 是否必填 |
|---|---|---|
| 用户名 | 可以 | 否 |
| 手机号码 | 可以 | 否 |
| 是否已认证 | 可以 | 是 |
| 用户性别 | 可以 | 否 |
| 最近登录时间 | 可以 | 否 |
| 账户余额 | 可以 | 否 |
初学者代码
看到这些例子你是否不由的一颤,又要开始造轮子的是不是?
以原生的例子为例,开始你可能会这样写(以下为伪代码) :
if (IS_POST) { $like = ''; if (isset($_POST['username'])) { $username = $_POST['username']; $like .= "username like '%" . $username . "%' and "; } if (isset($_POST['phone'])) { $phone = $_POST['phone']; $like .= "phone like '%" . $phone . "%' and"; } if ($_POST['is_auth']) { $isAuth = $_POST['is_auth']; $like .= "is_auth like '%" . $isAuth . "%' and"; } if ($_POST['sex']) { $sex = $_POST['sex']; $like .= "sex like '%" . $sex . "%' and"; } if ($_POST['time']) { $time = $_POST['time']; $like .= "time like '%" . $time . "%' and"; } if ($_POST['wallet']) { $wallet = $_POST['wallet']; $like .= "wallet like '%" . $wallet . "%' and"; } $like = rtrim($like, 'and'); $sql = "SELECT * FROM `user` WHERE {$like}"; } else { return view('user'); }封装
恩...,还不错,结构清晰,传统的初学者条型代码,接下来我们先封装一下几块代码。
function post($param) { return isset($_POST[$param]) ? $_POST[$param] : null; } if (IS_POST) { $like = ''; if (post('username')) { $username = post('username'); $like .= "username like '%" . $username . "%' and "; } if (post('phone')) { $phone = post('phone'); $like .= "phone like '%" . $phone . "%' and"; } if (post('is_auth')) { $isAuth = post('is_auth'); $like .= "is_auth like '%" . $isAuth . "%' and"; } if (post('sex')) { $sex = post('sex'); $like .= "sex like '%" . $sex . "%' and"; } if (post('time')) { $time = post('time'); $like .= "time like '%" . $time . "%' and"; } if (post('wallet')) { $wallet = post('wallet'); $like .= "wallet like '%" . $wallet . "%' and"; } $like = rtrim($like, 'and'); $sql = "SELECT * FROM `user` WHERE {$like}"; } else { return view('user'); }适当使用迭代
恩,至少我们可以自由控制post方法了,但是这类过程化代码维护性太低,我们再改进下:
function post($param) { return isset($_POST[$param]) ? $_POST[$param] : false; } function postAll() { return $_POST; } if (IS_POST) { $like = ''; foreach (postAll() as $key => $value) { if (post($key)) { $like .= "{$key} like '%{$value}%' and"; } } $like = rtrim($like, 'and'); $sql = "SELECT * FROM `user` WHERE {$like}"; } else { return view('user'); }面向对象
加个迭代代码看起来还算是整洁了点,作为PHP程序员,写代码不面向对象不靠谱,把class加上。
function request($param = null) { return new Request($param); } class Request { public function __construct(string $param = null) { return isset($_POST[$param]) ? $_POST[$param] : false; } public function all() { return $_POST; } } class User { public function index() { if (IS_POST) { $like = ''; foreach (request()->all() as $key => $value) { if (request($key)) { $like .= "{$key} like '%{$value}%' and"; } } $like = rtrim($like, 'and'); $sql = "SELECT * FROM `user` WHERE {$like}"; } else { return view('user'); } } }对User的改造
我们在对User的类进行改造,做一些判断及筛选。
function request($param = null) { return new Request($param); } class Request { public function __construct(string $param = null) { return isset($_POST[$param]) ? $_POST[$param] : false; } public function all() { return $_POST; } } class User { public $request = [ 'username', 'phone', 'is_auth', 'sex', 'time', 'wallet' ]; public function index() { if (IS_POST) { $like = ''; foreach (request()->all() as $key => $value) { if (in_array($key, $this->request) && request($key)) { $like .= sprintf("%s like %s and", $key, $value); } } $like = rtrim($like, 'and'); $sql = "SELECT * FROM `user` WHERE {$like}"; } else { return view('user'); } } }这就差不多了,对比真是的代码可能还相差甚远,我写这篇文章的目的不是教会你如何写代码,是想说明编码不是一次性的,应经过多次修改,使代码具有可维护性,扩展性等等的,各种"性"。
感谢你能够认真阅读完这篇文章,希望小编分享的"如何优化PHP代码"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
代码
篇文章
用户
例子
初学者
对象
封装
搜索
改造
迭代
不错
整洁
适当
自由
差不多
接下来
一次性
价值
传统
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技企业和互联网企业
互联网金融 科技
青岛互联网科技公司
互联网 的科技创新
嘟嘟瓜互联网科技
中国互联网金融科技基金
深圳卡尔迅互联网科技有限公司怎么样
阿里互联网科技公司
互联网为啥属于高科技
互联网软件和科技
互联网行业科技股
明优互联网科技有限公司
梅州GM互联网络科技有限公司
宇信科技在杭州互联网排第几
版纳互联网科技选哪家
互联网科技创新创业项目
杭州科技互联网公司有哪些
河南商务圈互联网科技有限公司
互联网的黑科技实验室
互联网企业和网络科技有限公司
互联网科技网
上海致骋互联网科技
卓越科技互联网 招聘
美国互联网前沿科技
新华互联网科技2019
来此购互联网科技有限公司
深圳育鹏互联网科技有限公司招聘
互联网科技的全部知识
互联网风格科技公司名称
互联网科技创业有什么好项目