Neue Funktionen in PHP7.1
1. Nullable-Typ
Die Typdeklaration von Parametern und Rückgabewerten kann durch Hinzufügen eines Fragezeichens (?
vor dem Typ) erfolgen name ), um es als null zu markieren. Gibt an, dass der Typ eines Funktionsparameters oder Rückgabewerts entweder der angegebene Typ oder null ist.
Sehen Sie sich das Beispiel an:
function testReturn(?string $name){ return $name; } var_dump(testReturn('yangyi')); var_dump(testReturn(null)); var_dump(testReturn2());
Druckausgabe:
$ php php71.phpstring(6) "yangyi"NULL PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function testReturn(), 0 passed in php71.php on line 22 and exactly 1 expected in php71.php:14Stack trace:#0 php71.php(22): testReturn()#1 {main} thrown in php71.php on line 14
Das Gleiche wie oben: Der Dritte hat einen schwerwiegenden Fehler gemeldet.
Schauen wir uns den Fall an, in dem der Funktionsrückgabewert Nullable
ist:
function testReturn3() : ?string{ //return "abc"; //return null;} var_dump(testReturn3());
Wenn ?
hinzugefügt wird, wird entweder ein String oder Null zurückgegeben. Sie können nichts zurückgeben. Es wird ein Fehler gemeldet.
2.void-Rückgabetyp
PHP7.0 hat die Funktion zur Angabe des Funktionsrückgabetyps hinzugefügt, aber der Rückgabetyp kann nicht als void angegeben werden. Diese Funktion von 7.1 ist eine Ergänzung. Eine mit dem Rückgabetyp void
definierte Funktion kann keinen Rückgabewert haben, auch wenn sie null zurückgibt:
function testReturn4() : void{ //1. 要么啥都不返还 ok //2. 要么只return; ok //return; //3. return null 也会报错 //return null; //4. return 4 会报错 //return 4;}
Fatal error: A void function must not return a value in /php71.php on line 70
Außerdem kann void nur für Rückgabewerte und nicht für Parameter verwendet werden. Folgendes meldet beispielsweise einen Fehler:
function testReturn6(void $a) : void{} var_dump(testReturn6());
PHP Fatal error: void cannot be used as a parameter type in php71.php on line 73
Wenn eine Methode in der Klassenvererbung als void-Rückgabetyp deklariert ist und die Unterklasse ihn erbt und überschreibt, kann sie nur void zurückgeben , andernfalls wird ein Fehler ausgelöst. :
<?php class Foo{ public function bar(): void { } }class Foobar extends Foo{ // 覆盖失败 public function bar(): array { // Fatal error: Declaration of Foobar::bar() must be compatible with Foo::bar(): void } }
Sie müssen dies also tun, und Sie erhalten keinen Fehler:
class Foo{ public $a; public function bar(): void { $this->a = 2; } }class Foobar extends Foo{ // 覆盖成功 public function bar(): void { $this->a = 3; } }
3.list Die eckigen Klammern ([]
) Abkürzung und fügen Sie den angegebenen Schlüssel hinzu
Sie können die Liste verwenden, um schnell zu durchlaufen, um die Werte im Array abzurufen. Die Abkürzung []
kann nun verwendet werden.
$data = [ [1, 'Tom'], [2, 'Fred'], ];// list() stylelist($id1, $name1) = $data[0];// [] style[$id1, $name1] = $data[0];// list() styleforeach ($data as list($id, $name)) { // logic here with $id and $name}// [] styleforeach ($data as [$id, $name]) { // logic here with $id and $name}
Darüber hinaus kann diese aktualisierte Liste auch einen Schlüssel für das Indexarray angeben. Dieses Upgrade ist großartig und sehr praktisch.
$data = [ ["id" => 1, "name" => 'Tom'], ["id" => 2, "name" => 'Fred'], ];// list() stylelist("id" => $id1, "name" => $name1) = $data[0]; // [] style["id" => $id1, "name" => $name1] = $data[0]; // list() styleforeach ($data as list("id" => $id, "name" => $name)) { // logic here with $id and $name } // [] styleforeach ($data as ["id" => $id, "name" => $name]) { // logic here with $id and $name}
Bevor diese Funktion nicht verfügbar war, haben wir normalerweise while
+ each
verwendet, um das Indexarray mit list
zu durchlaufen:
$data = [ ["id" => 1, "name" => 'Tom'], ["id" => 2, "name" => 'Fred'], ];while (list($id, name) = each($data)) { echo "$key => $val\n"; }
Hinweis: Die Each-Funktion wurde in PHP 7.2 entfernt! Verwenden Sie diese Methode daher nicht zum Durchlaufen des Indexarrays
3. Einstellung des sichtbaren Bereichs der Klassenkonstanten
Die Konstanten in der Klasse wurden zuvor mit const
deklariert, und das waren sie auch nicht sichtbares Attribut. Jetzt werden die sichtbaren Attribute der Methode übertragen:
<?php class ConstDemo { // 常量默认为 public const PUBLIC_CONST = 0; // 可以自定义常量的可见范围 public const PUBLIC_CONST_B = 2; protected const PROTECTED_CONST = 3; private const PRIVATE_CONST = 4; // 多个常量同时声明只能有一个属性 private const FOO = 1, BAR = 2; }
Die Verwendungsmethode ist dieselbe wie die Methode der Klasse. Ich werde nicht auf Details eingehen.
4. Unterstützen Sie den negativen String-Offset.
Es gibt zwei Aktualisierungen: 1 dient dazu, den String direkt zu übernehmen, und 2 bedeutet, dass der dritte Parameter der strpos-Funktion negative Zahlen unterstützt. Zeigt das Nehmen vom Schwanz an.
var_dump("abcdef"[-2]); // evar_dump(strpos("aabbcc", "b", -3)); //3
Die String-Variable kann den Wert direkt annehmen, ohne den Variablennamen zu übergeben. Sie wurde in PHP5.5 hinzugefügt. Jetzt können Sie es vom Ende nehmen:
var_dump("abcdef"[-2]); // 从末尾取倒数第2个字符:evar_dump("abcdef"[2]); // 从前面取第2个,从0开始:c$string = 'bar';echo $string[1], $string[-1]; // a r
5. Multi-Bedingungs-Catch
In der vorherigen try...catch-Anweisung kann jeder Catch nur eine bedingte Beurteilung festlegen:
try { // Some code...} catch (ExceptionType1 $e) { // 处理 ExceptionType1} catch (ExceptionType2 $e) { // 处理 ExceptionType2} catch (Exception $e) { // ...}
Jetzt können mehrere gleichzeitig verarbeitet werden. Mit „|
“ teilen.
try { // Some code... } catch (ExceptionType1 | ExceptionType2 $e) { // 对于 ExceptionType1 和 ExceptionType2 的处理 } catch (Exception $e) { // ...}
php7.2
php 7.2 ist größtenteils ein Update auf unterster Ebene zur Verbesserung der Leistung. Es gibt nicht viele Aktualisierungen auf der Ebene der allgemeinen Syntax, daher werden wir sie hier überspringen.
Ich habe zuvor über die neuen Funktionen und neuen Funktionen von PHP7.0 und älteren PHP-Versionen geschrieben. Werfen wir heute einen Blick auf die neuen Funktionen von PHP7.1 und PHP7.2.
Neue Funktionen in PHP7.1
1. Nullable-Typ
Die Typdeklaration von Parametern und Rückgabewerten kann durch Hinzufügen eines Fragezeichens vor dem Typnamen erfolgen ( ?
), um es als null zu markieren. Gibt an, dass der Typ des Funktionsparameters oder Rückgabewerts entweder der angegebene Typ oder null ist.
Sehen Sie sich das Beispiel an:
function testReturn(?string $name){ return $name; } var_dump(testReturn('yangyi')); var_dump(testReturn(null)); var_dump(testReturn2());
Druckausgabe:
$ php php71.phpstring(6) "yangyi"NULL PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function testReturn(), 0 passed in php71.php on line 22 and exactly 1 expected in php71.php:14Stack trace:#0 php71.php(22): testReturn()#1 {main} thrown in php71.php on line 14
Das Gleiche wie oben: Der Dritte hat einen schwerwiegenden Fehler gemeldet.
Schauen wir uns den Fall an, in dem der Rückgabewert der Funktion Nullable
ist:
function testReturn3() : ?string{ //return "abc"; //return null;} var_dump(testReturn3());
Wenn ?
hinzugefügt wird, wird entweder eine Zeichenfolge oder Null zurückgegeben. Sie können nichts zurückgeben. Es wird ein Fehler gemeldet.
2.void-Rückgabetyp
PHP7.0 hat die Funktion zur Angabe des Funktionsrückgabetyps hinzugefügt, aber der Rückgabetyp kann nicht als void angegeben werden. Diese Funktion von 7.1 ist eine Ergänzung. Eine mit dem Rückgabetyp void
definierte Funktion kann keinen Rückgabewert haben, auch wenn sie null zurückgibt:
function testReturn4() : void{ //1. 要么啥都不返还 ok //2. 要么只return; ok //return; //3. return null 也会报错 //return null; //4. return 4 会报错 //return 4;}
Fatal error: A void function must not return a value in /php71.php on line 70
Außerdem kann void nur für Rückgabewerte und nicht für Parameter verwendet werden. Folgendes meldet beispielsweise einen Fehler:
function testReturn6(void $a) : void{} var_dump(testReturn6());
PHP Fatal error: void cannot be used as a parameter type in php71.php on line 73
Wenn eine Methode in der Klassenvererbung als void-Rückgabetyp deklariert ist und die Unterklasse ihn erbt und überschreibt, kann sie nur void zurückgeben , andernfalls wird ein Fehler ausgelöst. :
<?php class Foo{ public function bar(): void { } }class Foobar extends Foo{ // 覆盖失败 public function bar(): array { // Fatal error: Declaration of Foobar::bar() must be compatible with Foo::bar(): void } }
Sie müssen dies also tun, und Sie erhalten keinen Fehler:
class Foo{ public $a; public function bar(): void { $this->a = 2; } }class Foobar extends Foo{ // 覆盖成功 public function bar(): void { $this->a = 3; } }
3.list Die eckigen Klammern ([]
) Abkürzung und fügen Sie den angegebenen Schlüssel hinzu
Sie können die Liste verwenden, um schnell zu durchlaufen, um die Werte im Array abzurufen. Die Abkürzung []
kann nun verwendet werden.
$data = [ [1, 'Tom'], [2, 'Fred'], ];// list() stylelist($id1, $name1) = $data[0];// [] style[$id1, $name1] = $data[0]; // list() styleforeach ($data as list($id, $name)) { // logic here with $id and $name} // [] styleforeach ($data as [$id, $name]) { // logic here with $id and $name}
Darüber hinaus kann diese aktualisierte Liste auch einen Schlüssel für das Indexarray angeben. Dieses Upgrade ist großartig und sehr praktisch.
$data = [ ["id" => 1, "name" => 'Tom'], ["id" => 2, "name" => 'Fred'], ];// list() stylelist("id" => $id1, "name" => $name1) = $data[0]; // [] style["id" => $id1, "name" => $name1] = $data[0]; // list() styleforeach ($data as list("id" => $id, "name" => $name)) { // logic here with $id and $name}// [] styleforeach ($data as ["id" => $id, "name" => $name]) { // logic here with $id and $name}
Bevor diese Funktion nicht verfügbar war, haben wir normalerweise while
+ each
verwendet, um das Indexarray mit list
zu durchlaufen:
$data = [ ["id" => 1, "name" => 'Tom'], ["id" => 2, "name" => 'Fred'], ];while (list($id, name) = each($data)) { echo "$key => $val\n"; }
Hinweis: Die Each-Funktion wurde in PHP 7.2 entfernt! Verwenden Sie diese Methode daher nicht zum Durchlaufen des Indexarrays
3. Einstellung des sichtbaren Bereichs der Klassenkonstanten
Die Konstanten in der Klasse wurden zuvor mit const
deklariert, und das waren sie auch nicht sichtbares Attribut. Jetzt werden die sichtbaren Attribute der Methode übertragen:
<?php class ConstDemo { // 常量默认为 public const PUBLIC_CONST = 0; // 可以自定义常量的可见范围 public const PUBLIC_CONST_B = 2; protected const PROTECTED_CONST = 3; private const PRIVATE_CONST = 4; // 多个常量同时声明只能有一个属性 private const FOO = 1, BAR = 2; }
Die Verwendungsmethode ist dieselbe wie die Methode der Klasse. Ich werde nicht auf Details eingehen.
4. Negativen String-Offset unterstützen
Es gibt 2 Aktualisierungen, 1 dient dazu, den String direkt zu übernehmen, 2 ist, dass der dritte Parameter der strpos-Funktion negative Zahlen unterstützt. Zeigt das Nehmen vom Schwanz an.
var_dump("abcdef"[-2]); // evar_dump(strpos("aabbcc", "b", -3)); //3
string变量可以直接取值,不用通过变量名,是在php5.5加入的。现在可以从尾部取:
var_dump("abcdef"[-2]); // 从末尾取倒数第2个字符:evar_dump("abcdef"[2]); // 从前面取第2个,从0开始:c$string = 'bar';echo $string[1], $string[-1]; // a r
5.多条件 catch
在以往的 try … catch 语句中,每个 catch 只能设定一个条件判断:
try { // Some code...} catch (ExceptionType1 $e) { // 处理 ExceptionType1} catch (ExceptionType2 $e) { // 处理 ExceptionType2} catch (Exception $e) { // ...}
现在可以多个一起处理。用”|
” 分割。
try { // Some code... } catch (ExceptionType1 | ExceptionType2 $e) { // 对于 ExceptionType1 和 ExceptionType2 的处理 } catch (Exception $e) { // ...}
php7.2
php 7.2大都是底层的更新,提高性能。没有太大常用语法层面的更新,这里就略过了。
相关推荐:
Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für neue Funktionen in PHP7.1 und 7.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Was noch beliebt ist, ist die Benutzerfreundlichkeit, die Flexibilität und ein starkes Ökosystem. 1) Benutzerfreundliche und einfache Syntax machen es zur ersten Wahl für Anfänger. 2) eng integriert in die Webentwicklung, eine hervorragende Interaktion mit HTTP -Anforderungen und Datenbank. 3) Das riesige Ökosystem bietet eine Fülle von Werkzeugen und Bibliotheken. 4) Active Community und Open Source Nature passen sie an neue Bedürfnisse und Technologietrends an.

PHP und Python sind beide Programmiersprachen auf hoher Ebene, die häufig für die Aufgaben der Webentwicklung, Datenverarbeitung und Automatisierung verwendet werden. 1.PHP wird häufig verwendet, um dynamische Websites und Content -Management -Systeme zu erstellen, während Python häufig zum Erstellen von Webrahmen und Datenwissenschaften verwendet wird. 2.PHP verwendet Echo, um Inhalte auszugeben, Python verwendet Print. 3. Beide unterstützen die objektorientierte Programmierung, aber die Syntax und die Schlüsselwörter sind unterschiedlich. 4. PHP unterstützt eine schwache Konvertierung, während Python strenger ist. 5. Die PHP -Leistungsoptimierung umfasst die Verwendung von Opcache und asynchrone Programmierung, während Python Cprofile und asynchrone Programmierungen verwendet.

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

PHP bleibt im Modernisierungsprozess wichtig, da es eine große Anzahl von Websites und Anwendungen unterstützt und sich den Entwicklungsbedürfnissen durch Frameworks anpasst. 1.PHP7 verbessert die Leistung und führt neue Funktionen ein. 2. Moderne Frameworks wie Laravel, Symfony und Codesigniter vereinfachen die Entwicklung und verbessern die Codequalität. 3.. Leistungsoptimierung und Best Practices verbessern die Anwendungseffizienz weiter.

PhPhas significantantyPactedWebDevelopmentAndendendsbeyondit.1) iTpowersMAjorPlatforms-LikewordpressandExcelsInDatabaseInteractions.2) php'SadaptabilityAllowStoscaleForLargeApplicationsfraMe-Linien-Linien-Linien-Linienkripte

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung