首頁 > 後端開發 > PHP7 > php7和php5有哪些差別

php7和php5有哪些差別

醉折花枝作酒筹
發布: 2023-02-17 22:24:01
轉載
2377 人瀏覽過

這篇文章要跟大家介紹一下php7和php5的差別。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

php7和php5有哪些差別

1、php標量類型與傳回型別宣告

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

2、NULL合併運算子

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';
登入後複製

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
登入後複製

4、常數數組

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

print(sites[1]);
登入後複製

5、匿名類別

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、Closure::call()方法增加,意思是向類別綁定個匿名函數

<?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(偽隨機數產生器)。

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

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

random_int() - 加密生存被保护的伪随机整数。
登入後複製

8、異常

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

9、use 語句改變

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

10、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数据只在发生变化时才写入。
登入後複製

11、PHP 7 移除的擴充

ereg

mssql

mysql

sybase_ct
登入後複製

為什麼PHP7 比PHP5 效能提升了?

1、變數儲存位元組減少,減少記憶體佔用,提升變數操作速度

2、改善陣列結構,陣列元素和hash映射表被分配在同一塊記憶體裡,降低了記憶體佔用、提升了cpu 快取命中率

3、改進了函數的呼叫機制,透過優化參數傳遞的環節,減少了一些指令,提高執行效率

推薦學習:php影片教學

以上是php7和php5有哪些差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板