Was sind die Funktionen in PHP7?

零下一度
Freigeben: 2023-03-10 17:20:02
Original
1189 Leute haben es durchsucht
<h2>Typdeklaration</h2> <p>Wenn man sich den Code ansieht, ist es auf einen Blick klar. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class person {     public function age(int $age) : string     {         return 'Age is ' . $age;     } }</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Batch-Deklaration von Namespace und Verwendungsschlüsselwort</h2> <p>Nicht gemischter Modus</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use Publishers\Packt\{ Book, Ebook, Video}; use function Publishers\Packt\{ getBook, saveBook }; use const Publishers\Packt\{ COUNT, KEY };</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p>Gemischter Modus</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use Publishers\Packt\{     Book,     Ebook,     Video,     function getBook,     function saveBook,     const COUNT,     const KEY };</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p>Zusammengesetzter Modus</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use Publishers\Packt\{     Paper\Book,     Electronic\Ebook,     Media\Video };</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Anonyme Klasse</h2> <p>Anonyme Klassen werden gleichzeitig deklariert und verwendet und haben alle Funktionen anderer Klassen. Der Unterschied besteht darin, dass anonyme Klassen keinen Klassennamen haben. Die Syntax lautet wie folgt: </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">new class(argument) { definition };</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p><em>Anonyme Klassen haben keine Klassennamen, aber innerhalb von PHP wird ihnen ein global eindeutiger Name in der Speicherreferenzadresstabelle zugewiesen. </em></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$name = new class('You') {     public function __construct($name)     {         echo $name;     } };</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p>Anonyme Klassen können die übergeordnete Klasse und ihre Methoden erben. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class Packt {     protected $number;     public function __construct()     {         echo 'parent construct';     }     public function getNumber() : float     {         return $this->number;     } } $number = new class(5) extends Packt {     public function __construct(float $number)     {         parent::__construct();         $this->number = $number;     } }; echo $number->getNumber();</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p>Anonyme Klassen können Schnittstellen erben. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">interface Publishers {     public function __construct(string name, string address);     public function getName();     public function getAddress(); } class packt {     protected $number;     protected $name;     protected $address;     public function ... } $info = new class('name', 'address') extends Packt implement Publishers {     public function __construct(string $name, string $address)     {         $this->name = $name;         $this->address = $address;     }     public function getName() : string     {         return $this->name;     }     public function getAddress() : string     {         return $this->address;     } } echo $info->getName() . ' ' . $info->getAddress();</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p>Anonyme Klassen können innerhalb einer Klasse verschachtelt werden. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class Math {     public $first_number = 10;     public $second_number = 10;     public function add() : float     {         return $this->first_number + $this->second_number;     }     public function mutiply_sum()     {         return new class() extends Math         {             public function mutiply(float $third_number) : float             {                 return $this->add() * $third_number;             }         };     } } $math = new Math(); echo $math->mutiply_sum()->mutiply(2);</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Verlassen Sie den altmodischen Konstruktor </h2> <p> Ab PHP4 kann der Konstruktor sich selbst als Konstruktor deklarieren, indem er ihn entsprechend dem Klassennamen benennt. In PHP7 wird der Konstruktor in deklariert Auf diese Weise kann es weiterhin verwendet werden, wird jedoch nicht empfohlen und gibt die veraltete Meldung <code>Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Packt has a deprecated constructor in ...</code> aus. Es wird empfohlen, <code>__construct()</code> in PHP7 zu verwenden. </p> <h2>Throwable-Schnittstelle </h2> <p> Ab PHP7 können schwerwiegende Fehler im Programm abgefangen werden. PHP7 stellt die Throwable-Schnittstelle bereit und Ausnahmen und Fehler werden von dieser Schnittstelle geerbt. </p> <h2>Fehler</h2> <p>Jetzt lösen die meisten schwerwiegenden Fehlerbedingungen eine Fehlerinstanz aus. Ähnlich wie bei abgefangenen Ausnahmen können Fehlerinstanzen durch Try/Catch abgefangen werden. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">try {     ... } catch(Error $e) {     echo $e->getMessage(); }</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p><em>In einigen Fehlersituationen wie TypeError, DivisionByZeroError, ParseError usw. werden nur Unterinstanzen von Fehlern ausgegeben. Der </em></p> <h2><=>-Operator </h2> <p><code><=></code> bündelt die drei Vergleichsoperatoren <code>==</code>, <code><</code> und <code>></code>, insbesondere Die Verwendungsregeln sind wie folgt. </p> <blockquote><p>Gibt 0 zurück, wenn beide Seiten des Operators gleich sind.<br>Gibt -1 zurück, wenn die linke Seite des Operators kleiner als die rechte Seite ist.<br>Gibt 1 zurück, wenn die linke Seite des Operators gleich ist ist größer als die rechte Seite</p></blockquote> <h2>Null-Merge-Operator </h2> <p><code>??</code> ist ein Zusammenführungsoperator, der direkt zurückgegeben werden kann, wenn der erste Operand vorhanden ist, andernfalls wird der zweite Operand zurückgegeben. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$title = $post['title'] ?? NULL; $title = $post['title'] ?? $get['title'] ?? 'No title';</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>einheitliche Variablensyntax </h2> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$first = ['name' => 'second']; $second = 'two'; echo $$first['name']; echo ${Sfirst['name']}; // PHP7 ... echo $object->$methods['title']; echo $object->{$methods['title']}; // PHP7</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <p> Hauptsächlich, weil sich die Parsing-Methode von PHP7 von der vorherigen Version von PHP unterscheidet. Fügen Sie einfach geschweifte Klammern in PHP7 hinzu, genau wie im obigen Code Andernfalls wird ein Fehler gemeldet. </p> <h2>Konstantes Array</h2> <p>Ab PHP5.6 können konstante Arrays mit dem Schlüsselwort <code>const</code> deklariert werden. In PHP7 können konstante Arrays über die Funktion <code>define</code> initialisiert werden. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">const STORES = ['en', 'fr', 'ar']; // php5.6 define('STORES', ['en', 'fr', 'ar']); // php7</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Standardwert im Switch </h2> <p>Vor PHP7 waren mehrere Standardwerte in der Switch-Anweisung zulässig. Ab PHP7 kann es nur einen Standardwert geben, sonst tritt dieser auf Schwerwiegender Fehler. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// php7之前 switch (true) {     case 'value':         # code...         break;     default:         # code...         break;     default:         # code...         break; } // php7 switch (true) {     case 'value':         # code...         break;     default:         # code...         break; }</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Optionsarray in der Funktion „session_start“</h2> <p>Vor PHP7 müssen Sie bei der Verwendung von Sitzung zuerst die Funktion „session_start()“ aufrufen. Diese Funktion verfügt über keine zu übergebenden Parameter, alle sitzungsbezogen Die Konfigurationen befinden sich alle in der Datei php.ini. Ab PHP7 können Sie beim Aufruf dieser Funktion eine Reihe von Parameteroptionen übergeben. Diese Einstellungsinformationen überschreiben die Sitzungskonfiguration in php.ini. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">session_start([     'cookie_lifetime' => 3600,     'read_and_close' => true ]);</pre><div class="contentsignin">Nach dem Login kopieren</div></div> <h2>Die unserialize-Funktion führt Filter ein </h2> <p>unserialize() kann jede Art von Objekt ohne Filterelemente deserialisieren, was unsicher ist. PHP7 führt Filter in unserialize() ein und ermöglicht die Deserialisierung von Standardmäßig alle Arten von Objekten. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$result = unserialize($object, ['allowed_classes' => ['Book', 'Ebook']]);</pre><div class="contentsignin">Nach dem Login kopieren</div></div>

Das obige ist der detaillierte Inhalt vonWas sind die Funktionen in PHP7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!