面向对象编程的三大特性是:抽象,继承,多态。我们都知道,PHP是一种单继承的语言,那么如何在PHP中如何实现多继承呢?我们先来考虑这样一个需求: 我们的项目是多模块,多平台开发。我们会使用MVC分层,...
CGI、FastCGI、PHP-FPM的区别以及详解
Web服务器php是为web而生的一种后端语言,但是php也仅仅只是一种后端语言,要实现web开发, 我们需要html,javascript,css等开发语言的协助才能将网页展示在网页上。另外,我们知...
PHP Excel导出在Safari浏览器下自动加表后缀.html 的问题
在safari浏览器下实现Excel表格导出,总是会自动加一个html后缀,导致文件无法正常打开,可以在header头里加一行,即可解决:header("Content-Type:appli...
PHP延时静态绑定以及self 和 static 的区别
首先我们来看下,self和static的区别:class A { public static $num&nbs...
ThinkPHP利用phpOffice/Spreadsheet实现Excel导出(加粗、背景色、文字颜色、合并行列)
首先我们使用composer安装:composer require phpoffice/phpspreadsheet然后建立一个抽象的工具类Export并为其创建单例类:names...
PHP处理浮点数进一、去尾(不进行四舍五入)
在开发中,我们经常遇到要把数字进行两位小数的处理,通常情况下我们使用四舍五入可以满足需求,而且mysql 的金额存储也是会进行自动的四舍五入处理。但是在某些需求中,往往只需要保留两位小数即可。例如:在...
Thinkphp5 部署Apache URL重写问题
我们写好的代码往往部署于Linux上,为了安全和URL的美观,经常会利用 Apache或者 Nignx 进行URL 重写。ThinkPHP5 官方URL重写说明: Thinkphp5 URL...
解决 ThinkPHP5 中多表多字段查询问题(MySQL 视图应用以及介绍)
在日常开发中,我们经常会遇到如下问题:在前端展示的列表中,往往包含多个表的数据且需要查询多个表的字段,进行筛选分页排序等问题,常见的方法是采用 join 方法或者 ThinkPHP 的关联模型、视图查...

ThinkPHP5 API 多版本控制开发
开发准备对于接口开发,建议采用单独的项目部署,与后台项目分离开来,原因如下:1. 接口多用于查询数据,对于数据提交的较少2. 接口的权限多采用token模式,后台多采用RBAC控制访问3. 对于需要高...
ThinkPHP5 Loader 类介绍以及使用
Loader 类功能:实现类库或者资源的自动加载源代码:/thinkphp/libary/think/Loader.php我们主要来看几个用到的方法:模型加载方法/** &nb...