PHP核心技术与最佳实践

《PHP核心技术与最佳实践》是一本致力于为希望成为中高级PHP程序员的读者提供高效而有针对性指导的经典著作。 系统归纳和深刻解读了PHP开发中的编程思想、底层原理、核心技术、开发技巧、编码规范和最佳实践。 全书分为5个部分: 第一部分(1~2章)从不同的角度阐述了面向对象软件设计思想的核心概念、技术和原则,分析了面向对象的特性、设计模式的理念,指出了如何设计低耦合、高可扩展性的软件,等等; 第二部分(3~6章)详细讲解了PHP中正则表达式的规范和使用技巧,PHP网络编程的原理、方法、技巧和一些重要的操作,PDO、数据库应用优化,数据库设计和MySQL的高级应用,PHP扩展引擎的原理与实践; 第三部分(第7章)拨云见日,围绕PHP扩展开发进行了细致而深入的探讨,解析了PHP的底层实现和Zend虚拟机API,并用PHP扩展开发的实例带领读者走进PHP的底层世界,旨在让读者对PHP性能优化、底层原理进行深入的理解。 第四部分(8~11章)重点讨论了缓存的设计、Memcached的原理与实践、NoSQL数据库Redis源码分析与应用实践、高性能PHP网站的架构和设计等内容; 第五部分(12~14章)详细讲解了PHP代码的调试和测试、Hash算法和数据库的实现,以及PHP的编码规范,旨在帮助读者提高开发效率,养成良好编程习惯。

2020-02-26

php7的isset方法改动

给typecho添加自定义变量时参考typecho官网文档自定义字段使用,添加如下代码,结果代码始终跑到else里。 if(isset($this->fields->fieldName)){ echo '字段存在,值为:'.$this->fields->fieldName; }else{ echo '字段不存在'; } 原来php5.6版本判断是先执行$this->fields->fieldName然后再对结果进行判断,而php7则将$this->fields->fieldName整体作为一个变量进行判断。 改后的代码 $field = $this->fields->fieldName if(isset($field)){ echo '字段存在,值为:'.$field; }else{ echo '字段不存在'; } 参考升级 PHP7 后 isset 不太对了

2019-12-05

centos7安装php72

安装epel-release源 yum -y install epel-release 安装webtatic-release源 rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 安装php72 yum -y install mod_php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-gd

2019-11-26

php验证码报错

使用php生成验证码时报错! Call to undefined function Intervention\Image\Gd\imagettfbbox() 先看下是否安装gd brew info gd gd: stable 2.2.5 (bottled), HEAD Graphics library to dynamically manipulate images https://libgd.github.io/ Not installed From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gd.rb ==> Dependencies Required: fontconfig ✔, freetype ✔, jpeg ✔, libpng ✔, libtiff ✔, webp ✔ ==> Options --HEAD Install HEAD version 发现没有,安装gd brew install gd 重启php后发现还是不行,卸载php重新安装 brew install [email protected] --with-httpd --with-freetype 报错,发现brew不支持自定义编译参数了 然后卸载[email protected]安装[email protected] 还是不行,, php -version 发现版本还是7.1,这时候豁然开朗,我原来一直用的是mac自带的php mv /usr/bin/php php.bak echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/....

2019-11-26