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

黄舟
Release: 2023-03-06 18:16:02
Original
2383 people have browsed it

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
Copy after login

Parameter type, return type and strict mode

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

declare(strict_types=1);

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

fn(1.2);
Copy after login

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);
Copy after login
$a = 0;
$b = "abc";

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

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());
Copy after login

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());
Copy after login
Definition

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

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};
Copy after login

Array destructuring

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

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
Copy after login

Note the difference from the default parameter value:

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

Array destructuring

[$a, $b] = ["a", "b"];
Copy after login

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) {
    
}
Copy after login

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!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!