Heim  >  Artikel  >  Backend-Entwicklung  >  Memo-Code-Sharing für einige neue Funktionen in PHP7.0 und 7.1

Memo-Code-Sharing für einige neue Funktionen in PHP7.0 und 7.1

黄舟
黄舟Original
2018-01-09 13:10:032387Durchsuche

Im Folgenden sind einige neue Funktionen der Versionen PHP 7.0 und 7.1 aufgeführt.

PHP 7.0

?? Operator

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

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

Parametertyp, Rückgabetyp und strikter Modus

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

declare(strict_types=1);

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

fn(1.2);

Kombinierter Vergleichsoperator

Gibt 0 zurück, wenn die beiden gleich sind

Ersterer gibt 1 zurück, wenn er größer als letzterer ist; 1, wenn es größer als das erstere ist;

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

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

Generator mit Rückgabewert

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

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

var_dump($generator->getReturn());
Bei Verwendung von

ohne a Rückgabewert, . Wenn der Generator außerdem nicht vollständig ausgibt, wird bei Verwendung von $generator->getReturn() ein Fehler gemeldet. null$generator->getReturn()

Definition
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());
Konstante

Array

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

Array-Destrukturierung
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};

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

JIT

JIT, just-in-time zur Laufzeit einige Anweisungen in Maschinencode umwandeln. Bei rechenintensiven Anwendungen ergibt sich eine höhere Leistungssteigerung.

Optionaler Parametertyp

Beachten Sie den Unterschied zum Standardparameterwert:
function(?string $name)
{
    var_dump($name);
}

// 传参类型为 string 或 null

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

iterierbare und aufrufbare Pseudoklassentypen
[$a, $b] = ["a", "b"];

verwenden den aufrufbaren Typ, um darzustellen, dass der Parametertyp ein aufrufbarer Typ ist (
Funktion

, Klasseninstanz, die invoke implementiert);

Verwenden Sie den iterierbaren Typ, um den Parametertyp auf den iterierbaren Typ zu beschränken (Array, Klasseninstanz, die Iterator oder Traversable
Schnittstelle implementiert

); Erfassung mehrerer Ausnahmetypen

Das obige ist der detaillierte Inhalt vonMemo-Code-Sharing für einige neue Funktionen in PHP7.0 und 7.1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn