Heim  >  Artikel  >  Backend-Entwicklung  >  Beherrschen Sie die neuen Funktionen jeder Version von PHP 7.x

Beherrschen Sie die neuen Funktionen jeder Version von PHP 7.x

coldplay.xixi
coldplay.xixinach vorne
2021-04-12 09:38:112724Durchsuche

Beherrschen Sie die neuen Funktionen jeder Version von PHP 7.x

Neue Funktionen jeder Version von PHP 7. Ich sagte, dass dies eine Schreibmethode ist, die nur in PHP7 und höher verfügbar ist. Wissen Sie nicht? Er sagte, er wisse es nicht.

Ich murmelte in meinem Herzen und hatte vor, mit dem Schreiben dieses Blogs zu beginnen.

PHP7 sollte zusätzlich zu den Grundlagen ein modernes PHP sein. Da es in PHP7, starken Typdefinitionen und einigen grammatikalischen Schreibmethoden, wie z. B. kombinierten Vergleichsoperatoren, vorkam, kann define() Arrays und andere Funktionen definieren. Die formelle Einführung beginnt unten, beginnend mit PHP7.0. In Zukunft werden neue Versionen hinzugefügt, und zwar eine nach der anderen. Okay, fangen wir an

Empfohlen (kostenlos):

PHP7


PHP 7.0

Skalare Typdeklaration

Was ist ein Skalartyp?

Vier Skalartypen:

boolean (Boolescher Typ)

Integer (Ganzzahltyp) Float (Gleitkommatyp, auch Double genannt) String (String)

Zwei zusammengesetzte Typen:

Array (Array)

Objekt
Eine Ressource ist eine spezielle Variable, die einen Verweis auf eine externe Ressource enthält. Ressourcen werden durch spezielle Funktionen erstellt und genutzt. Ressourcentypvariablen sind spezielle Handles zum Öffnen von Dateien, Datenbankverbindungen, Grafikbereichen usw.

Vereinfacht ausgedrückt ist ein Skalartyp ein Datentyp, der Variablen definiert.


In PHP5 gibt es Klassennamen, Schnittstellen, Arrays und Rückruffunktionen. In PHP wurden Strings, Integer-, Float- und Bool-Werte hinzugefügt. Schauen wir uns unten das Beispiel an. Hier definieren wir, dass $a vom Typ int sein muss. Wenn in der Typfunktion ein Fehler gemeldet wird. Ändern wir den obigen Code und er ist richtig

$a = $a ?? '';


Deklaration des Rückgabewerttyps


Der Rückgabewert einer Funktionsmethode kann beispielsweise definiert werden, wenn eine meiner Funktionen einen int-Typ zurückgeben muss, wird sie definitiv einen int zurückgeben . Wenn Sie eine Zeichenfolge zurückgeben, wird ein Fehler gemeldet. Wie folgt
function typeInt(int $a){
    echo $a;}typeInt('sad');// 运行,他讲会报错 Fatal error: Uncaught TypeError: Argument 1 passed to type() must be of the type integer, string given
Was wäre, wenn wir ein Array definieren und einen String oder andere Typen zurückgeben würden?

Dann wird er

einen Fehler melden

Zum Beispiel

function typeString(string $a){
    echo $a;}typeString('sad'); //sad
Null-Koaleszenzoperator

Aufgrund der großen Anzahl von Situationen, in denen ternäre Ausdrücke und isset() im täglichen Gebrauch gleichzeitig verwendet werden, haben wir den Null-Koaleszenzoperator hinzugefügt (?? ) ist syntaktischer Zucker. Wenn die Variable existiert und nicht NULL ist, gibt sie ihren eigenen Wert zurück, andernfalls gibt sie ihren zweiten Operanden zurück.

<?phpfunction returnArray(): array{

    return [1, 2, 3, 4];}print_r(returnArray());/*Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
*/

Raumschiff-Operator

function returnErrorArray(): array
{

    return '1456546';
}

print_r(returnErrorArray());
/*
Array
Fatal error: Uncaught TypeError: Return value of returnArray() must be of the type array, string returned in 
*/

define Definiere Array

In früheren Versionen von PHP7 war es nicht möglich, Arrays zu definieren

## #Unicode-Codepunkt-Übersetzungssyntax

<?php

$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
//这两个是等效的  当不存在user 则返回?? 后面的参数

$username = isset($_GET[&#39;user&#39;]) ? $_GET[&#39;user&#39;] : &#39;nobody&#39;;

?>

Anonyme Klassen

// 整数echo 1 <=> 1; // 0 当左边等于右边的时候,返回0echo 1 <=> 2; // -1  当左边小于右边,返回-1echo 2 <=> 1; // 1  当左边大于右边,返回1// 浮点数echo 1.5 <=> 1.5; // 0echo 1.5 <=> 2.5; // -1echo 2.5 <=> 1.5; // 1
 // 字符串echo "a" <=> "a"; // 0echo "a" <=> "b"; // -1echo "b" <=> "a"; // 1

PHP 7.1

Nullable-Typen

Die Typen von Parametern und Rückgabewerten können jetzt durch Hinzufügen eines Fragezeichens nullbar gemacht werden der Typ. Wenn diese Funktion aktiviert ist, sind die übergebenen Parameter oder das von der Funktion zurückgegebene Ergebnis entweder vom angegebenen Typ oder null .

define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // 输出 "cat"

void

fügt einen Typ hinzu, der void zurückgibt, z. B.

// PHP 7 之前的代码use some\namespace\ClassA;use some\namespace\ClassB;use some\namespace\ClassC as C;use function some\namespace\fn_a;use function some\namespace\fn_b;use function some\namespace\fn_c;use const some\namespace\ConstA;use const some\namespace\ConstB;use const some\namespace\ConstC;// PHP 7+ 及更高版本的代码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};

Mehrfache Ausnahmeerfassungsverarbeitung

Diese Funktion ist in der täglichen Entwicklung noch relativ häufig

echo "\u{aa}"; //ªecho "\u{0000aa}";  //ª  echo "\u{9999}"; //香

PHP. 7.2

P HP7 .2 ist die am wenigsten neue Funktion in der PHP7-Serie### Ermöglicht nachgestellte Kommas in gruppierten Namespaces

Beispielsweise ermöglicht

<?phpinterface Logger {
    public function log(string $msg);}class Application {
    private $logger;

    public function getLogger(): Logger {
         return $this->logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }}$app = new Application;$app->setLogger(new class implements Logger {  //这里就是匿名类
    public function log(string $msg) {
        echo $msg;
    }});

das Überschreiben abstrakter Methoden

<?phpfunction testReturn(): ?string{
    return 'elePHPant';}var_dump(testReturn()); //string(10) "elePHPant"function testReturn(): ?string{
    return null;}var_dump(testReturn()); //NULLfunction test(?string $name){
    var_dump($name);}test('elePHPant'); //string(10) "elePHPant"test(null); //NULLtest(); //Uncaught Error: Too few arguments to function test(), 0 passed in...

Neue Objekttypen

<?phpfunction swap(&$left, &$right) : void{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;}$a = 1;$b = 2;var_dump(swap($a, $b), $a, $b);
PHP 7.3

PHP7.3 hat keine großen Änderungen auf Syntaxebene.


PHP 7.4

Klassenattribute unterstützen Typdeklaration

Herzlichen Glückwunsch, dass PHP einen weiteren Schritt in Richtung starker Typisierung gemacht hat

<?php
try {
    // some code
} catch (FirstException | SecondException $e) {  //用 | 来捕获FirstException异常,或者SecondException 异常
  
}

Pfeilfunktionen

Pfeilfunktionen bieten eine Möglichkeit, implizite wertbasierte Scope-Binding-Kurzschriftsyntax zu verwenden zur Definition von Funktionen. Es ähnelt der Pfeilfunktion von JS, jedoch mit einem fn. Eine Runde von Beschwerden

<?phpuse Foo\Bar\{
    Foo,
    Bar,
    Baz,};

Null-Merge-Operator-Unterstützungsmethode

<?phpabstract class A{
    abstract function test(string $s);}abstract class B extends A{
    // overridden - still maintaining contravariance for parameters and covariance for return
    abstract function test($s) : int;}

Ich bin Landwirt, ein Programmierer, der normalerweise Code schreibt und einfügt. Wenn es Ihnen gefällt, klicken Sie bitte auf „Folgen“.

Das obige ist der detaillierte Inhalt vonBeherrschen Sie die neuen Funktionen jeder Version von PHP 7.x. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen