PHP6新特性分析

本文讲述了PHP6的新特性。分享给大家供大家参考,具体如下:

1.支持Unicode

支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数。

2.Register Globals 将被移除

这是一个重要的决定,说多新进的PHP开发者会觉得Register Globals满方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始时,此项默认设置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相信现在的PHP世界里,仍使用PHP3时代所产生的程序应该是少之又少。

3.Magic Quotes 将消失

Magic Quotes主要是自动转义需要转义的字符,此项功能移除叶符合大多
数PHP开发者的心声。

4.Safe Mode 取消

老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到

5.'var' 别名为 'public'

在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,PHP6现在也可以称作为OO语言了。

6.通过引用返回将出错

现在透过引用返回编译器将会报错 例如$a =& new b()、function &c(),OO语言默认就是引用,所以不需要再使用&了。

7.zend.ze1 compatbility mode 将被移去

Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百分之百能解析PHP4语法,所以旧时代的产物,移除。

8.Freetype 1 and GD 1 support 将不见

这两个是很久的Libs,所以不再支持,GD1早已被现在的GD2取代了。

9.dl() 被移到 SAPI 中

dl()主要是让设计师加载extension Libs,现在被移到 SAPI 中

10.Register Long Array 去除

从PHP5起默认是关闭,再PHP6中正式移除。

11.一些Extension的变更

例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出现,他们将被移入到PHP的核心之中,并且默认是开启,ereg extension将被放入PECL,代表着它将被移出PHP核心,这也是为了让路给新的正则表达式extension,此外,Fileinfo extension 也将被导入PHP的核心之中。

12.APC将被导入核心

这是一个提高PHP性能的功能,现在它将被放入PHP核心中,并且可以选择是否启用APC

13.告别ASP风格的起始标签

原来是为了取悦ASP开发者转向使用PHP,现今已经不再需要这种做法了,最后,别期望PHP6的性能可以全面超过PHP5,有可能的是PHP6的执行效率会比PHP5还要来的慢的,但是可以预期的是,PHP开发小组将会努力的完善PHP5,超越PHP5。

那么,对PHP6有兴趣的朋友现在可以到PHP官方网站上下载,试试这些功能是否真的已经在PHP6中体现出来了

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • PHP6 mysql连接方式说明

    mysqlnd是在PHP源码树中集成,与原先的libmysql不同,mysqlnd与内核联系更紧密. 官方说内存占用要节省40%左右.速度也更快. 顺便提一下.如果在升级到PHP5.3以后,数据库连接时出现mysql_connect()[2002] tcp://localhost:3306 的错误提示时. 需要将localhost改成127.0.0.1,或者将连接方式由tcp改为socket. 在使用phpmyadmin这类工具时,也可以按照上述方式修改config.inc.php

  • PHP6 先修班 JSON实例代码

    它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集 JSON 主要利用了成對的 {} 來包住各個object(物件),用成對的 [] 來包各個array(陣列), 用成對的 "" 來包住各字串,用逗號來區隔各變數而資料型態有 string, number, array, object 下面簡單的JSON格式,敘述了一個 object json 擁有一個成員變數,這

  • PHP6 中可能会出现的新特性预览

    这些特性包括: 集成OpCache(OPcache通过对PHP的opcode进行缓存和优化,可以提高PHP程序的执行速度)    改善对64位环境的支持    支持Unicode    清理内部API    提升代码质量,做到Warning-Free    改善OPcodes.编译器.运行时    JIT编译器(LibJIT?)    支持Annotation(注解?)    命名自变量(Named argument)    不同等级的类型提示    支持HTTP 2.0协议(可能会使用nght

  • 我整理的PHP 7.0主要新特性

    截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7.0新特征吧. 1.标量参数类型声明 现在支持字符串(string).整型(int).浮点数(float).及布尔型(bool)参数声明,以前只支持类名.接口.数组及Callable 两种风格:强制转换模式(默认)与严格模式 <?php // Coer

  • PHP5.3新特性小结

    本文总结分析了PHP5.3新特性.分享给大家供大家参考,具体如下: 1.命名空间 解决了类,函数和常量名冲突的问题 2.静态绑定 继承时父类可以直接调用子类重写父类的方法 class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static funct

  • 浅谈php7的重大新特性

    截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7会有那些主要的变化了... 新特性预览 ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG 增加抽象语法树,使编译更加科学 64位的INT支持 统一的变量语法 原声的TLS - 对扩展开发有意义 一致性foreach循环的改进 新增

  • PHP 7的一些引人注目的新特性简单介绍

    1. ?? 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用.用法: $a = $_GET['a'] ?? 1; 它相当于: <?php $a = isset($_GET['a']) ? $_GET['a'] : 1; 我们知道三元运算符是可以这样用的: $a ?: 1 但是这是建立在 $a 已经定义了的前提上.新增的 ?? 运算符可以简化判断. 2. 函数返回值类型声明 官方文档提供的例子(注意 ... 的边长参数语法在 PHP 5.6 以上的版本中才有): <?php

  • PHP6新特性分析

    本文讲述了PHP6的新特性.分享给大家供大家参考,具体如下: 1.支持Unicode 支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的.另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数. 2

  • C#4.0新特性之协变与逆变实例分析

    本文实例讲述了C#4.0新特性的协变与逆变,有助于大家进一步掌握C#4.0程序设计.具体分析如下: 一.C#3.0以前的协变与逆变 如果你是第一次听说这个两个词,别担心,他们其实很常见.C#4.0中的协变与逆变(Covariance and contravariance)有了进一步的完善,主要是两种运行时的(隐式)泛型类型参数转换.简单来讲,所谓协变(Covariance)是指把类型从"小"升到"大",比如从子类升级到父类:逆变则是指从"大"变到

  • 详细分析JAVA8新特性 Base64

    BASE64 编码是一种常用的字符编码,在很多地方都会用到.但base64不是安全领域下的加密解密算法.能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在http,mime协议下快速传输数据. JDK里面实现Base64的API 在JDK1.6之前,JDK核心类一直没有Base64的实现类,有人建议用Sun/Oracle JDK里面

  • Python3.10的一些新特性原理分析

    Python 3.10.0a2 版本已经于 2020-11-04 发布,因此我们可以窥见 Python 3.10 的一些新特性.这些新特性很可能会改变未来的 Python 生态系统,使其朝着更明确,更易读的方向发展,同时保持我们熟知和喜欢的易用性. PEP 602 1.类型注释的进一步扩展 3.9 版对 Python 中的类型提示和注释进行了大幅度修改和清理,类型提示这似乎是一种持续的趋势,在 3.10 中得到进一步扩展,目的很明显,是为了更好的可读性,无需看代码即可得知变量和函数返回值的类型.

  • C++新特性详细分析基于范围的for循环

    目录 1.概念 1.1.普通的for循环 1.2.基于范围的for循环 1.3.两者的区别 2.基于范围的for循环使用 2.1.值拷贝 2.2.引用 2.3.只读引用 2.4.关联容器 1.概念 // 普通的for循环 for(表达式 1; 表达式 2; 表达式 3) { // 循环体 } // 基于范围的for循环 for (declaration : expression) { // 循环体 } 1.1.普通的for循环 它的工作流程是: 1.执行表达式 1 2.如果表达式 2 为 tru

  • ES6新特性之类(Class)和继承(Extends)相关概念与用法分析

    本文实例讲述了ES6新特性之类(Class)和继承(Extends)相关概念与用法.分享给大家供大家参考,具体如下: 一.类(Class) 1.基本语法 JavaScript语言的传统方法是通过构造函数,定义并生成新对象.下面是一个例子 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')'

  • ES6(ECMAScript 6)新特性之模板字符串用法分析

    本文实例讲述了ES6(ECMAScript 6)新特性之模板字符串用法.分享给大家供大家参考,具体如下: ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings).除了使用反撇号字符 ` 代替普通字符串的引号 ' 或 " 外,它们看起来与普通字符串并无二致.在最简单的情况下,它们与普通字符串的表现一致: context.fillText(`Ceci n'est pas une cha?ne.`, x, y); 但我们不能说:"原来只是被反撇号括起

  • ES6新特性五:Set与Map的数据结构实例分析

    本文实例讲述了ES6新特性五之Set与Map的数据结构.分享给大家供大家参考,具体如下: 1. Set ① 定义:它类似于数组,但是成员的值都是唯一的,没有重复的值.Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2,3,5,4,5,2,2].map(x => s.add(x)) console.log(s); //Set { 2, 3, 5, 4 } ② 属性和方法 Set结构有以下属性. Set.prototype.constructor:构造函数

  • ES6新特性之字符串的扩展实例分析

    本文实例讲述了ES6新特性之字符串的扩展.分享给大家供大家参考,具体如下: 一.ES5字符串函数 concat: 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf: 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . charAt: 返回指定位置的字符. lastIndexOf: 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 . match: 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 nul

  • ES6新特性之Object的变化分析

    本文实例讲述了ES6新特性之Object的变化.分享给大家供大家参考,具体如下: Object的变化 1. ES6允许在对象中只写属性名,不写属性值,属性值为属性名对应的变量值. var a = 'hi'; var obj = {a}; console.log(obj); //Object {a: "hi"} 2.对象内方法的简写. var a = 'hi'; var obj = { name: 'ES6', a, sayHi(){ console.log(this.a+' '+thi

随机推荐