Maison > développement back-end > PHP7 > Quelles sont les différences entre php7 et php5

Quelles sont les différences entre php7 et php5

醉折花枝作酒筹
Libérer: 2023-02-17 22:24:01
avant
2370 Les gens l'ont consulté

Cet article vous présentera la différence entre php7 et php5. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Quelles sont les différences entre php7 et php5

1. Type scalaire PHP et déclaration de type de retour

#主要分为两种模式,强制性模式和严格模式
declare(strict_types=1)
#1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。
Copier après la connexion

2. Opérateur de fusion NULL

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';
Copier après la connexion

3. >

// 整型比较
print( 1 <=> 1);print(PHP_EOL);
print( 1 <=> 2);print(PHP_EOL);
print( 2 <=> 1);print(PHP_EOL);
print(PHP_EOL); // PHP_EOL 为换行符
//结果:
0
-1
1
Copier après la connexion

4. Tableau constant

// 使用 define 函数来定义数组
define(&#39;sites&#39;, [
   &#39;Google&#39;,
   &#39;Jser&#39;,
   &#39;Taobao&#39;
]);

print(sites[1]);
Copier après la connexion

5 Classe anonyme

interface 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; 
// 使用 new class 创建匿名类 
$app->setLogger(new class implements Logger { 
   public function log(string $msg) { 
      print($msg); 
   } 
}); 

$app->getLogger()->log("我的第一条日志");
Copier après la connexion

6 La méthode Closure::call() est ajoutée, ce qui signifie lier une fonction anonyme à la classe<. 🎜>
<?php 
class A { 
    private $x = 1; 
} 

// PHP 7 之前版本定义闭包函数代码 
$getXCB = function() { 
    return $this->x; 
}; 

// 闭包函数绑定到类 A 上 
$getX = $getXCB->bindTo(new A, &#39;A&#39;);  

echo $getX(); 
print(PHP_EOL); 

// PHP 7+ 代码 
$getX = function() { 
    return $this->x; 
}; 
echo $getX->call(new A); 
?>
Copier après la connexion

7. CSPRNG (générateur de nombres pseudo-aléatoires).

PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

random_bytes() - 加密生存被保护的伪随机字符串。

random_int() - 加密生存被保护的伪随机整数。
Copier après la connexion

8. Exception

PHP 7 异常用于向下兼容及增强旧的assert()函数。
Copier après la connexion

9. Utiliser le changement d'instruction

#可以导入同一个namespace下的类简写
use some\namespace\{ClassA, ClassB, ClassC as C};
Copier après la connexion

10>Option de session

1.session_start()可以定义数组
<?php
session_start(&#91;
   &#39;cache_limiter&#39; => &#39;private&#39;,
   &#39;read_and_close&#39; => true,
]);
?>
2.引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。
Copier après la connexion

11.

ereg

mssql

mysql

sybase_ct
Copier après la connexion
Pourquoi les performances de PHP7 sont-elles améliorées par rapport à PHP5 ?

1. Les octets de stockage variables sont réduits, ce qui réduit l'utilisation de la mémoire et améliore la vitesse de fonctionnement des variables.

2. Amélioration de la structure du tableau et de la table de mappage de hachage. , réduisant l'utilisation de la mémoire réduite et le taux de réussite du cache CPU amélioré

3. Amélioration du mécanisme d'appel de fonction, réduction de certaines instructions et amélioration de l'efficacité d'exécution en optimisant le processus de transfert de paramètres

Apprentissage recommandé :

tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal