Table of Contents
PHP7新增 功能,php7新增功能
Home php教程 php手册 PHP7新增 功能,php7新增功能

PHP7新增 功能,php7新增功能

Jun 13, 2016 am 08:49 AM

PHP7新增 功能,php7新增功能

php7发布已有半月,最近有时间了解一下php7的新特性,当然,这个版本最大的特点是性能的提升。在下并非高手,欢迎大家指出错误,同时期待共同交流

1.在use语句增加了group支持
use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo };


2.增加??操作符
isset($_GET['mykey']) ? $_GET['mykey'] : ""笨重
$_GET['mykey'] ?: "" 当mykey不存在时会报一个E_NOTICE
$_GET['mykey'] ?? 'defaultvalue' 安全不会报E_NOTICE
$username = $_GET['user'] ?? 'nobody';

 

3. 64位PHP7字符串长度可以超过2^31次方字节。

 

4.增加Closure::call支持
Closure::call将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数,

<span> 1</span> <?<span>php
</span><span> 2</span> <span>class</span><span> Value {
</span><span> 3</span> <span>protected</span> <span>$value</span><span>;
</span><span> 4</span> 
<span> 5</span> <span>public</span> <span>function</span> __construct(<span>$value</span><span>) {
</span><span> 6</span> <span>$this</span>->value = <span>$value</span><span>;
</span><span> 7</span> <span>}
</span><span> 8</span> 
<span> 9</span> <span>public</span> <span>function</span><span> getValue() {
</span><span>10</span> <span>return</span> <span>$this</span>-><span>value;
</span><span>11</span> <span>}
</span><span>12</span> <span>}
</span><span>13</span> 
<span>14</span> <span>$three</span> = <span>new</span> Value(3<span>);
</span><span>15</span> <span>$four</span> = <span>new</span> Value(4<span>);
</span><span>16</span> 
<span>17</span> <span>$closure</span> = <span>function</span> (<span>$delta</span>) { <span>var_dump</span>(<span>$this</span>->getValue() + <span>$delta</span><span>); };
</span><span>18</span> <span>$closure</span>->call(<span>$three</span>, 4<span>);
</span><span>19</span> <span>$closure</span>->call(<span>$four</span>, 4<span>);
</span><span>20</span> ?>
<span>21</span> <span>//</span><span> outputs int(7),int(8)</span>
Copy after login

5.双引号字符串和heredocs里面支持使用\u{xxxxx}来声明unicode字符。

6.define对数组的支持

<span>1</span> <span>define</span>('ANIMALS', <span>array</span><span>(
</span><span>2</span> 'dog',
<span>3</span> 'cat',
<span>4</span> 'bird'
<span>5</span> <span>));
</span><span>6</span> <span>echo</span> ANIMALS[1]; <span>//</span><span> outputs "cat"</span>
Copy after login

7.增加比较运算符<=>
$a <=> $b
如果a等于b则为0
如果a大于b则为1
如果a小于b则为-1

8.php全局保留字可以声明使用

<span>1</span> <span>class</span><span> View {
</span><span>2</span>     <span>public</span> <span>function</span> <span>include</span>(View <span>$view</span><span>) {
</span><span>3</span>         <span>//</span><span>...</span>
<span>4</span> <span>    }
</span><span>5</span> }
Copy after login

include关键字可以当普通字符串关键字一样被使用

9.标量类型(int,float,string,bool)支持
增加declare(strict_types=1)指令声明是否严格类型校验,
当在文件头声明declare(strict_types=1)

<span>1</span> <<span>php
</span><span>2</span> 
<span>3</span> <span>declare</span>(strict_types=1<span>);
</span><span>4</span> <span>function</span> add(<span>float</span> <span>$a</span>, <span>float</span> <span>$b</span>): <span>float</span><span> {
</span><span>5</span>     <span>return</span> <span>$a</span> + <span>$b</span><span>;
</span><span>6</span> <span>}
</span><span>7</span> add(1, 2); <span>//</span><span> float(3)</span>
Copy after login

以上代码如果不开启declare(strict_types=1)或许declare(strict_types=0),php将自动转换参数和返回值到指定类型,
开启declare(strict_types=1),如果参数类型不是flaot或许返回类型不是float则抛出错误

 

10.增加接口为用户层提供安全方便的随机数生成器。RFC: https://wiki.php.net/rfc/easy_userland_csprng (后续再议)

11.增加了yield from 操作符。https://wiki.php.net/rfc/generator-delegation (后续再议)

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)