suchen
HeimBackend-EntwicklungPHP7Verstehen und vergleichen Sie neue Funktionen von PHP7

Verstehen und vergleichen Sie neue Funktionen von PHP7

Empfohlen (kostenlos): PHP7

1. Null-Koaleszenzoperator (??)

?? Grammatik: Wenn Die Variable existiert und der Wert ist nicht NULL, sie gibt ihren eigenen Wert zurück, andernfalls gibt sie ihren zweiten Operanden zurück.

 1 //php7以前  
 if判断 
 2 if(empty($_GET['param'])) { 
 3       $param = 1; 
 4 }else{ 
 5     $param = $_GET['param']; 
 6 } 7  
 8 //php7以前  三元运算符 
 9 $param = empty($_GET['param']) ? 1 : $_GET['param'];10 
 11 //PHP7  null合并运算符12 $param = $_GET['param'] ?? 1;//1

2 . Kombinierter Vergleichsoperator ()

Der kombinierte Vergleichsoperator wird zum Vergleichen zweier Ausdrücke verwendet. Wenn $a kleiner, gleich oder größer als $b ist, gibt er -1 und zurück 0 bzw. 1. Das Prinzip des Vergleichs besteht darin, die allgemeinen Vergleichsregeln von PHP zu befolgen Verwenden Sie die folgenden Typparameter: string, int, float, bool

 1 //php7以前 
 2 define("CONTENT", "hello world"); 
 3 echo CONTENT;//hello world 4  
 5 //PHP7 6 define('ANIMALS', [ 
 7     'dog', 
 8     'cat', 
 9     'bird'
 10 ]);
 11 echo ANIMALS[2];//bird12 
 13 //PHP7 类外也可使用const来定义常量
 14 const CONSTANT = 'Hello World'; 
15 echo CONSTANT;//Hello World

5. Unterstützung für die Rückgabetypdeklaration hinzufügen. Ähnlich wie bei der Parametertypdeklaration Name nach der Funktionsdefinition)

 1 //整数 
 2 echo 1  1; // 0 
 3 echo 1  2; // -1 
 4 echo 2  1; // 1 5  
 6 //浮点数 7 echo 1.5  1.5; // 0 
 8 echo 1.5  2.5; // -1 
 9 echo 2.5  1.5; // 1 
 11 //字符串12 echo "a"  "a"; // 0
 13 echo "a"  "b"; // -1
 14 echo "b"  "a"; // 1
 1 //... 操作符: 表示这是一个可变参数. php5.6及以上的版本可使用: 函数定义的时候变量前使用. 
 2 function intSum(int ...$ints){ 
 3     return array_sum($ints); 
 4 } 
 5 var_dump(intSum(2,'3.5'));//5 
 6  
 7 //严格模式 
 8 //模式声明:declare(strict_types=1);  默认情况值为0,值为1代表为严格校验的模式  
 9 declare(strict_types=1);
 10 function add(int $a,int $b){
 11     return $a+$b;
 12 }
 13 var_dump(add(2,'3.5')); //Fatal error: Uncaught TypeError: Argument 2 passed to add() must be of the type integer
6. Anonyme Klasse

ermöglicht der neuen Klasse {}, ein anonymes Objekt zu erstellen.

1 //有效的返回类型
2 declare(strict_types = 1);
3 function getInt(int $value): int {
4   return $value;
5 }
6 print(getInt(6));//6
rreee

7. Abschluss::call()

Closure::call( )-Methode wurde als kurze Möglichkeit hinzugefügt, einen Objektbereich vorübergehend an einen Abschluss zu binden und ihn aufzurufen. Seine Leistung ist viel schneller als bindTo.

1 //无效返回类型
2 declare(strict_types = 1);
3 function getNoInt(int $value): int {
4   return $value+'2.5';
5 }
6 print(getNoInt(6));//Fatal error: Uncaught TypeError: Return value of getNoInt() must be of the type integer
 1 <?php  
 2 //php7以前 接口实现 
 3 interface User{ 
 4     public function getDiscount(); 
 5 } 
 6 class VipUser implements User{ 
 7     //折扣系数 
 8     private $discount = 0.6; 
 9     public function getDiscount() {
 10         return $this->discount;
 11     }
 12 }
 13 class Goods{
 14     private $price = 200;
 15     private $objectVipUser;
 16     //User接口VipUser类实现
 17     public function getUserData($User){
 18         $this->objectVipUser = $User;
 19         $discount = $this->objectVipUser->getDiscount();
 20         echo "商品价格:".$this->price*$discount;
 21     }
 22 }
 23 $display = new Goods();
 24 //常规实例化接口实现对象
 25 $display ->getUserData(new VipUser);//商品价格:120

8.

unserialize()-Funktion: Die Filterfunktion kann die Codeinjektion illegaler Daten verhindern und so sicherere deserialisierte Daten bereitstellen tlChar: Bietet Zugriff auf einige Dienstprogrammmethoden, die für den Zugriff auf Unicode-Zeicheninformationen verwendet werden können. Zur Verwendung muss die CSPRNG-Funktion installiert sein .

random_bytes() – Kryptografisch geschützte pseudozufällige Zeichenfolge random_int() – Kryptografisch geschützte pseudozufällige Ganzzahl.

 1 <?php  
 2 //php7 创建一个匿名的对象 
 3 interface User{ 
 4     public function getDiscount(); 
 5 } 
 6 class Goods{ 
 7     private $price = 200; 
 8 private $objectVipUser; 
 9     public function getUserData($User){
 10         $this->objectVipUser = $User;
 11         $discount = $this->objectVipUser->getDiscount();
 12         echo "商品价格:".$this->price*$discount;
 13     }
 14 }
 15 $display = new Goods();
 16 //new匿名对象实现user接口
 17 $display ->getUserData(new class implements User{
 18     private $discount = 0.6;
 19     public function getDiscount() {
 20         return $this->discount;
 21     }
 22 });//商品价格:120
Sie können a verwenden Single-Use-Anweisung zum Importieren von Klassen, Funktionen und Konstanten aus demselben Namespace, anstatt mehrere Use-Anweisungen zu verwenden ist der Wert des ersten Parameters dividiert durch den zweiten Parameter und gerundet

.

 1 <?php  
 2 //php7以前 
 3 class A { 
 4     private  $attribute = &#39;hello world&#39;; 
 5 } 
 6  
 7 $getClosure = function(){ 
 8     return $this->attribute; 
 9 };
 10 
 11 $getAttribute = $getClosure->bindTo(new A, 'A');//中间层闭包
 12 echo $getAttribute();//hello world
13 PHP7-Fehlerbehandlung

 1 <?php  
 2 //PHP7 
 3 class A { 
 4     private  $attribute = &#39;hello world&#39;; 
 5 } 
 6  
 7 $getClosure = function(){ 
 8     return $this->attribute; 
 9 };
 10 
 11 echo $getClosure->call(new A);//hello world
 1 <?php  
 2 class A{  
 3    public $name = &#39;admin_a&#39;;    
 4 } 
 5 class B{ 
 6    public $name = &#39;admin_b&#39;; 
 7 } 
 8  9 $objA = new A(); 
10 $objB = new B(); 
11 12 $serializedObjA = serialize($objA); 
13 $serializedObjB = serialize($objB); 
14 15 16 //默认行为是接收所有类; 第二个参数可以忽略17 $dataA = unserialize($serializedObjA , ["allowed_classes" => true]); 
18 var_dump($dataA);//object(A)#3 (1) { ["name"]=> string(7) "admin_a" }19 20 //如果allowed_classes设置为false,unserialize会将所有对象转换为__PHP_Incomplete_Class对象 21 $dataA = unserialize($serializedObjA , ["allowed_classes" => false]); 
22 var_dump($dataA);//object(__PHP_Incomplete_Class)#4 (2) { ["__PHP_Incomplete_Class_Name"]=> string(1) "A" ["name"]=> string(7) "admin_a" }23 24 //转换所有对象到 __PHP_Incomplete_Class对象,除了对象"B"25 $dataB = unserialize($serializedObjB , ["allowed_classes" => ["B"]]); 
26 var_dump($dataB);//object(B)#3 (1) { ["name"]=> string(7) "admin_b" }
1 var_dump(IntlChar::CODEPOINT_MAX);//int(1114111) 
2 echo '<br>';
3 var_dump(IntlChar::charName('+'));//string(9) "PLUS SIGN" 
4 echo '<br>';
5 var_dump(IntlChar::ispunct('?'));//bool(true)

1 $bytes = random_bytes(8); 
2 echo(bin2hex($bytes));//随机2073a110a2e3c497
3 echo '<br>';
4 echo(random_int(1, 999));//随机786
5 echo '<br>';
6 print(random_int(-999, -1));//随机-357
 1 //PHP7之前 
 2 use some\namespace\ClassA; 
 3 use some\namespace\ClassB; 
 4 use some\namespace\ClassC as C; 
 5 use function some\namespace\fn_a; 
 6 use function some\namespace\fn_b; 
 7 use function some\namespace\fn_c; 
 8 use const some\namespace\ConstA; 
 9 use const some\namespace\ConstB;
 10 use const some\namespace\ConstC;
 11 
 12 // PHP7之后
 13 use some\namespace\{ClassA, ClassB, ClassC as C};
 14 use function some\namespace\{fn_a, fn_b, fn_c};
 15 use const some\namespace\{ConstA, ConstB, ConstC};

Das obige ist der detaillierte Inhalt vonVerstehen und vergleichen Sie neue Funktionen von PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

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.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor