Home  >  Article  >  Backend Development  >  What are the differences between php7 and php5

What are the differences between php7 and php5

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-05-18 09:37:302274browse

This article will introduce to you the difference between php7 and php5. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

What are the differences between php7 and php5

1. PHP scalar type and return type declaration

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

2. NULL coalescing operator

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';

3. Combination budget operator

// 整型比较
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

4. Constant array

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

print(sites[1]);

5. Anonymous class

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("我的第一条日志");

6. The Closure::call() method is added, which means binding an anonymous function to the class

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

7, CSPRNG (pseudo-random number generator).

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

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

random_int() - 加密生存被保护的伪随机整数。

8, Exception

PHP 7 异常用于向下兼容及增强旧的assert()函数。

9, Use statement change

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

10, Session option

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数据只在发生变化时才写入。

11, PHP 7 removed extension

ereg

mssql

mysql

sybase_ct

Why is the performance of PHP7 improved compared to PHP5?

1. The variable storage bytes are reduced, reducing memory usage and improving variable operation speed.

2. Improving the array structure. The array elements and hash mapping table are allocated in the same memory, reducing the Reduce memory usage and improve CPU cache hit rate

3. Improve the function calling mechanism. By optimizing the parameter transfer process, some instructions are reduced and execution efficiency is improved

Recommended learning:php video tutorial

The above is the detailed content of What are the differences between php7 and php5. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete