我整理的PHP 7.0主要新特性
原文:http://php.net/manual/en/migration70.new-features.php
1.标量参数类型声明
现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable
两种风格:强制转换模式(默认)与严格模式
<code class="sourceCode php"><span class="kw"><?php</span><span class="co">// Coercive mode</span><span class="kw">function</span> sumOfInts<span class="ot">(</span>int <span class="st">...</span><span class="kw">$ints</span><span class="ot">)</span>{ <span class="kw">return</span> <span class="fu">array_sum</span><span class="ot">(</span><span class="kw">$ints</span><span class="ot">);</span>}<span class="fu">var_dump</span><span class="ot">(</span>sumOfInts<span class="ot">(</span><span class="dv">2</span><span class="ot">,</span> <span class="st">'3'</span><span class="ot">,</span> <span class="fl">4.1</span><span class="ot">));</span></code>
2.返回类型声明
<code class="sourceCode php"><span class="kw"><?php</span><span class="kw">function</span> arraysSum<span class="ot">(</span><span class="fu">array</span> <span class="st">...</span><span class="kw">$arrays</span><span class="ot">)</span>: <span class="fu">array</span>{ <span class="kw">return</span> <span class="fu">array_map</span><span class="ot">(</span><span class="kw">function</span><span class="ot">(</span><span class="fu">array</span> <span class="kw">$array</span><span class="ot">)</span>: int { <span class="kw">return</span> <span class="fu">array_sum</span><span class="ot">(</span><span class="kw">$array</span><span class="ot">);</span> }<span class="ot">,</span> <span class="kw">$arrays</span><span class="ot">);</span>}<span class="fu">print_r</span><span class="ot">(</span>arraysSum<span class="ot">([</span><span class="dv">1</span><span class="ot">,</span><span class="dv">2</span><span class="ot">,</span><span class="dv">3</span><span class="ot">],</span> <span class="ot">[</span><span class="dv">4</span><span class="ot">,</span><span class="dv">5</span><span class="ot">,</span><span class="dv">6</span><span class="ot">],</span> <span class="ot">[</span><span class="dv">7</span><span class="ot">,</span><span class="dv">8</span><span class="ot">,</span><span class="dv">9</span><span class="ot">]));</span></code>
3.??运算符
?? 用于替代需要isset的场合,这是一个语法糖。
<code class="sourceCode php"><span class="kw"><?php</span><span class="co">// Fetches the value of $_GET['user'] and returns 'nobody'</span><span class="co">// if it does not exist.</span><span class="kw">$username</span> = <span class="kw">$_GET</span><span class="ot">[</span><span class="st">'user'</span><span class="ot">]</span> <span class="ot">??</span> <span class="st">'nobody'</span><span class="ot">;</span><span class="co">// This is equivalent to:</span><span class="kw">$username</span> = <span class="fu">isset</span><span class="ot">(</span><span class="kw">$_GET</span><span class="ot">[</span><span class="st">'user'</span><span class="ot">])</span> <span class="ot">?</span> <span class="kw">$_GET</span><span class="ot">[</span><span class="st">'user'</span><span class="ot">]</span> <span class="ot">:</span> <span class="st">'nobody'</span><span class="ot">;</span><span class="co">// Coalescing can be chained: this will return the first</span><span class="co">// defined value out of $_GET['user'], $_POST['user'], and</span><span class="co">// 'nobody'.</span><span class="kw">$username</span> = <span class="kw">$_GET</span><span class="ot">[</span><span class="st">'user'</span><span class="ot">]</span> <span class="ot">??</span> <span class="kw">$_POST</span><span class="ot">[</span><span class="st">'user'</span><span class="ot">]</span> <span class="ot">??</span> <span class="st">'nobody'</span><span class="ot">;</span></code>
4. 比较运算符
就是看两个表达式值的大小,三种关系: = 返回0、 返回 1
<code class="sourceCode php"><span class="kw"><?php</span><span class="co">// Integers</span><span class="fu">echo</span> <span class="dv">1</span> <=> <span class="dv">1</span><span class="ot">;</span> <span class="co">// 0</span><span class="fu">echo</span> <span class="dv">1</span> <=> <span class="dv">2</span><span class="ot">;</span> <span class="co">// -1</span><span class="fu">echo</span> <span class="dv">2</span> <=> <span class="dv">1</span><span class="ot">;</span> <span class="co">// 1</span><span class="co">// Floats</span><span class="fu">echo</span> <span class="fl">1.5</span> <=> <span class="fl">1.5</span><span class="ot">;</span> <span class="co">// 0</span><span class="fu">echo</span> <span class="fl">1.5</span> <=> <span class="fl">2.5</span><span class="ot">;</span> <span class="co">// -1</span><span class="fu">echo</span> <span class="fl">2.5</span> <=> <span class="fl">1.5</span><span class="ot">;</span> <span class="co">// 1</span> <span class="co">// Strings</span><span class="fu">echo</span> <span class="st">"a"</span> <=> <span class="st">"a"</span><span class="ot">;</span> <span class="co">// 0</span><span class="fu">echo</span> <span class="st">"a"</span> <=> <span class="st">"b"</span><span class="ot">;</span> <span class="co">// -1</span><span class="fu">echo</span> <span class="st">"b"</span> <=> <span class="st">"a"</span><span class="ot">;</span> <span class="co">// 1</span></code>
5.define支持定义数组类型的值
php 5.6已经支持CONST 语法定义数组类的常量,PHP7中支持define语法。
<code class="sourceCode php"><span class="kw"><?php</span><span class="fu">define</span><span class="ot">(</span><span class="st">'ANIMALS'</span><span class="ot">,</span> <span class="ot">[</span> <span class="st">'dog'</span><span class="ot">,</span> <span class="st">'cat'</span><span class="ot">,</span> <span class="st">'bird'</span><span class="ot">]);</span><span class="fu">echo</span> <span class="kw">ANIMALS</span><span class="ot">[</span><span class="dv">1</span><span class="ot">];</span> <span class="co">// outputs "cat"</span></code>
6.匿名类
<code class="sourceCode php"><span class="kw"><?php</span><span class="kw">interface</span> Logger { <span class="kw">public</span> <span class="kw">function</span> <span class="fu">log</span><span class="ot">(</span>string <span class="kw">$msg</span><span class="ot">);</span>}<span class="kw">class</span> Application { <span class="kw">private</span> <span class="kw">$logger</span><span class="ot">;</span> <span class="kw">public</span> <span class="kw">function</span> getLogger<span class="ot">()</span>: Logger { <span class="kw">return</span> <span class="kw">$this</span>->logger<span class="ot">;</span> } <span class="kw">public</span> <span class="kw">function</span> setLogger<span class="ot">(</span>Logger <span class="kw">$logger</span><span class="ot">)</span> { <span class="kw">$this</span>->logger = <span class="kw">$logger</span><span class="ot">;</span> }}<span class="kw">$app</span> = <span class="kw">new</span> Application<span class="ot">;</span><span class="kw">$app</span>->setLogger<span class="ot">(</span><span class="kw">new</span> <span class="kw">class</span> <span class="kw">implements</span> Logger { <span class="kw">public</span> <span class="kw">function</span> <span class="fu">log</span><span class="ot">(</span>string <span class="kw">$msg</span><span class="ot">)</span> { <span class="fu">echo</span> <span class="kw">$msg</span><span class="ot">;</span> }}<span class="ot">);</span><span class="fu">var_dump</span><span class="ot">(</span><span class="kw">$app</span>->getLogger<span class="ot">());</span></code>
7.增加了整除函数 intdiv

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

在进行PHP编程时,我们常常需要对数组进行合并。PHP提供了array_merge()函数来完成数组合并的工作,不过当数组中存在相同的键时,该函数会覆盖原有的值。为了解决这个问题,PHP在语言中还提供了一个array_merge_recursive()函数,该函数可以合并数组并保留相同键的值,使得程序的设计变得更加灵活。array_merge

在PHP中,有许多强大的数组函数可以使数组的操作更加方便和快捷。当我们需要将两个数组拼成一个关联数组时,可以使用PHP的array_combine函数来实现这一操作。这个函数实际上是用来将一个数组的键作为另一个数组的值,合并成一个新的关联数组。接下来,我们将会讲解如何使用PHP中的array_combine函数将两个数组拼成关联数组。了解array_comb

在PHP编程中,数组是一种非常重要的数据结构,能够轻松地处理大量数据。PHP中提供了许多数组相关的函数,array_fill()就是其中之一。本篇文章将详细介绍array_fill()函数的用法,以及在实际应用中的一些技巧。一、array_fill()函数概述array_fill()函数的作用是创建一个指定长度的、由相同的值组成的数组。具体来说,该函数的语法

Python中的array模块是一个预定义的数组,因此其在内存中占用的空间比标准列表小得多,同时也可以执行快速的元素级别操作,例如添加、删除、索引和切片等操作。此外,数组中的所有元素都是同一种类型,因此可以使用数组提供的高效数值运算函数,例如计算平均值、最大值和最小值等。另外,array模块还支持将数组对象直接写入和读取到二进制文件中,这使得在处理大量数值数据时更加高效。因此,如果您需要处理大量同质数据,可以考虑使用Python的array模块来优化代码的执行效率。要使用array模块,首先需要

在Java编程中,数组是一种重要的数据结构。数组可以在一个变量中存储多个值,更重要的是可以使用索引访问每个值。但是在使用数组时,可能会出现一些异常,其中之一是ArrayStoreException。本文将讨论ArrayStoreException异常的常见原因。1.类型不匹配数组在创建时必须指定元素类型。当我们试图将不兼容的数据类型存储到一个数组中时,就会抛

在PHP编程中,数组是一个经常用到的数据类型。而关于数组的操作函数也是相当多的,其中包括了array_change_key_case()函数。该函数可以将数组中键名的大小写进行转换,从而方便我们进行数据的处理。本文就来介绍一下PHP中array_change_key_case()函数的使用方法。一、函数语法及参数array_change_ke


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

뜨거운 주제



