Heim > Backend-Entwicklung > PHP7 > Wir stellen die neuen Funktionen jeder Version von PHP 7.x vor

Wir stellen die neuen Funktionen jeder Version von PHP 7.x vor

coldplay.xixi
Freigeben: 2023-02-17 19:12:01
nach vorne
1800 Leute haben es durchsucht

Wir stellen die neuen Funktionen jeder Version von PHP 7.x vor

Empfohlen (kostenlos): PHP7

Neue Funktionen von PHP 7. Gesetz Was ist das? 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 in PHP7 starke Typdefinitionen und einige grammatikalische Schreibmethoden, wie z. B. kombinierte Vergleichsoperatoren, vorhanden sind, 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

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 das Beispiel von Everything an. Hier definieren wir, dass $a vom Typ int sein muss. Wenn in der Typfunktion ein String übergeben wird, wird ein Fehler gemeldet. Ändern wir den obigen Code und er ist richtig

$a = $a ?? '';
Nach dem Login kopieren


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
Nach dem Login kopieren
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
Nach dem Login kopieren
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
)
*/
Nach dem Login kopieren

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 
*/
Nach dem Login kopieren

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;;

?>
Nach dem Login kopieren

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
Nach dem Login kopieren

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"
Nach dem Login kopieren

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};
Nach dem Login kopieren

Mehrfache Ausnahmeerfassungsverarbeitung

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

echo "\u{aa}"; //ªecho "\u{0000aa}";  //ª  echo "\u{9999}"; //香
Nach dem Login kopieren

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;
    }});
Nach dem Login kopieren

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...
Nach dem Login kopieren

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);
Nach dem Login kopieren
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 异常
  
}
Nach dem Login kopieren

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 Welle von Beschwerden

<?phpuse Foo\Bar\{
    Foo,
    Bar,
    Baz,};
Nach dem Login kopieren

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;}
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage