美文网首页PHP实战首页投稿(暂停使用,暂停投稿)程序员
「php化零为整」那些被忽略了的版本优化

「php化零为整」那些被忽略了的版本优化

作者: Bill_Wang | 来源:发表于2016-08-03 17:35 被阅读290次

源码地址:https://github.com/wilfordw/phpTutorial

我写过一个《php化整为零系列》,这篇是它们的整合版,当做目录和回忆使用,文中我大部分只列出关键词简单语法,不会详加说明,需要详细说明的点对应链接详看
本篇中也不包含版本时间轴,需要知道对应版本特性的请参考PHP 自 5.2 到 5.6 中新增的功能详解,这也是我系列的主要参考文章


本篇中没有加入PDO与MySQLi的介绍,因为后面会有关于Laveral系列,它有自己封装的数据库函数。所以这里就先不研究了,了解php的新特征也是为了能大致读懂Laveral框架
还有XDebug,个人感觉过于繁琐,利用var_dump等输出已经足够调试了,而且Laveral自带错误堆栈信息。

autoload

自动加载
老版本 __autoload
新版本 spl_autoload

「php化整为零系列」一、autoload

Closures

闭包又称匿名函数,PHP增加这一特性,也是为了让代码更简洁,尤其use对于外部变量的引用尤其关键

「php化整为零系列」二、Closures(闭包)

Magic(魔术方法)

PHP5.3新增了一个叫做__invoke的魔术方法,这样在创建实例后,可以直接调用对象
__call 当要调用的方法不存在或权限不足时,会自动调用__call 方法。
__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法

「php化整为零系列」三、Magic(魔术方法)

内置Web服务器

基本用法php -S localhost:8000
根目录 php -S localhost:8000 -t magic/
路由脚本 php -S localhost:8000 webServer/router.php
远程访问 php -S 0.0.0.0:8000

「php化整为零系列」四、内置Web服务器

命名空间

同文件中可多命名空间
大括号可包裹命名空间
use命名空间与别名定义as
引用的时候需要在命名空间前加\\
php5.6以后对命名空间有一定的优化可以直接通过命名空间引用常量和函数

「php化整为零系列」五、命名空间

后期静态绑定

在继承过程中引入static关键字替代self来达到静态方法的继承目的

「php化整为零系列」六、后期静态绑定

Heredoc&Nowdoc

//标示可以是自定义字符,前后字符一致,且不能在文章中出现 Heredoc中可以嵌入变量
<<<标示
文章
标示;
//标示可以是自定义字符,前后字符一致,且不能在文章中出现 Nowdoc中不能嵌入变量
<<<'标示'
文章
标示;

「php化整为零系列」七、Heredoc&Nowdoc

语法优化

  1. const 允许使用之前定义的常量进行计算、允许常量作为函数参数默认值
  2. 数组简写
  3. 可变函数参数优化
  4. 三元运算符简写
  5. 类名通过::class可以获取
  6. 非变量array和string也能支持下标获取
  7. 用foreach+list简化二位数组的迭代
  8. yield

「php化整为零系列」八、语法优化

Traits

  1. trait Trait不能直接实例化
  2. 当方法或属性同名时,当前类中的方法会覆盖 trait的 方法,而 trait 的方法又覆盖了基类中的方法。
  3. 使用insteadofas操作符来解决冲突,insteadof是使用某个方法替代另一个,而as是给方法取一个别名
  4. as关键词还有另外一个用途,那就是修改方法的访问控制
  5. Trait 也能组合Trait,Trait中支持抽象方法静态属性静态方法

「php化整为零系列」九、Traits

Phar

  • 配置php.ini phar.readonly = Off
  • 打包
new Phar(包名)
$phar->buildFromDirectory(打包目录, 正则筛选);
$phar->compressFiles( Phar::GZ |PHAR::BZ2);//压缩方式
$phar->setStub( $phar->createDefaultStub(入口文件) );
  • 加载
require_once 'phar:://包名/文件';

「php化整为零系列」十、Phar

相关文章

  • 「php化零为整」那些被忽略了的版本优化

    我写过一个《php化整为零系列》,这篇是它们的整合版,当做目录和回忆使用,文中我大部分只列出关键词简单语法,不会详...

  • 深入理解PHP opcode优化

    转发:深入理解PHP opcode优化 1.概述 PHP(本文所述案例PHP版本均为7.1.3)作为一门动态脚本语...

  • PHP7 为什么变快了?

    PHP7比PHP5在性能上有很大的提升那么PHP7做了那些优化?变量存储优化 1.存储变量的结构体变小,结构体成员...

  • PHP8 发布啦

    PHP 8.0 是 PHP 语言的一个主版本更新。 它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构...

  • PHP 8 发布了

    PHP 8.0 是 PHP 语言的一个主版本更新。 它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构...

  • PHP 进化史 — 从 v5.6 到 v8.0

    PHP 7.3 版本发布后,为了更好地理解这门广泛流行的编程语言的新特性和优化之处,我决定详细地研究下 PHP 开...

  • PHP 配置优化

    php.ini 调整 php-fpm.conf 优化 php 项目配置文件(www.conf)优化 重启 php

  • ThinkPHP 5.0 (一)主要特性 和 命名规范

    一、主要特性 ThinkPHP5.0 版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化...

  • Mac下Laravel开发环境搭建

    1、安装或升级合适的php版本Laravel对php版本有要求,确认系统php版本高于要求版本(php -v),如...

  • wampServer 安装redis扩展

    一、查看PHP版本信息 使用 phpinfo() 函数查看 PHP 的版本信息(用于选择扩展包) ↑ PHP版本 ...

网友评论

    本文标题:「php化零为整」那些被忽略了的版本优化

    本文链接:https://www.haomeiwen.com/subject/bgoqsttx.html