Home >Backend Development >PHP Tutorial >Memo code sharing for some new features in PHP7.0 and 7.1

Memo code sharing for some new features in PHP7.0 and 7.1

黄舟
黄舟Original
2018-01-09 13:10:032456browse

The following are some new features of PHP 7.0 & 7.1 versions.

PHP 7.0

?? Operator

$foo = null;
$bar = $foo ?? 123;

// 相当于 $bar = isset($bar) ? $bar : 123

Parameter type, return type and strict mode

// 在严格模式下,传参类型不匹配会抛出错误

declare(strict_types=1);

function fn(int $a) : int
{
    echo $a;
}

fn(1.2);

combination Comparator

Returns 0 when the two are equal;

The former is greater than the latter and returns 1;
The latter is greater than the former and returns -1;

var_dump($a <=> $b);
$a = 0;
$b = "abc";

var_dump($a <=> $b);
// 注意,字符串在与数字比较时会被当作 0;

Generator with return value

function generator()
{
    yield 1;
    yield 2;
    return "a";
}

$generator = generator();
foreach ($generator as $val) {
    var_dump($val);
}

var_dump($generator->getReturn());

When $generator->getReturn() is used without a return value, ## will be returned #null. Moreover, when the generator does not output completely, using $generator->getReturn() will report an error.

function generator()
{
    yield 1;
    yield 2;
    return "a";
}

$generator = generator();

var_dump($generator->current());
var_dump($generator->next());

var_dump($generator->getReturn()); // 报错

var_dump($generator->current());
var_dump($generator->next());
Definition

ConstantArray
define(&#39;COLORS&#39;, [&#39;red&#39;, &#39;blue&#39;, &#39;black&#39;]);
echo COLORS[1];  // red

Multiple use declarations

use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};

Array destructuring

list($a, $b) = ["a", "b"];

PHP 7.1

JIT

JIT, just in time. Converts some instructions into machine code during runtime. There is a high performance improvement for computing-intensive applications.

Optional parameter type

function(?string $name)
{
    var_dump($name);
}

// 传参类型为 string 或 null

Note the difference from the default parameter value:

function(string $name = "default-name")
{
    var_dump($name);
}

Array destructuring

[$a, $b] = ["a", "b"];

iterable & callable pseudo-class type

Use callable type to represent that the parameter type is a callable type (

Function, class instance that implements invoke);

Use iterable type Limit the type of parameters passed to iterable types (arrays, class instances that implement Iterator or Traversable

interface);

Multiple exception type capture

try {
    
} catch (OneException | AnotherException $e) {
    
}

The above is the detailed content of Memo code sharing for some new features in PHP7.0 and 7.1. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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