截止到目前為止,php官方已經發布了php7的rc5版本,預計在11月份左右會發布第乙個正式版本!現在來說php7的重大特性肯定已經是定型了,不會再有什麼變動了。後續一些版本的迭代主要也就是修修bug,優化之類的。下面就來說話我們一直期待的php7.0新特徵吧。
1.標量引數型別宣告
現在支援字串(string)、整型(int)、浮點數(float)、及布林型(bool)引數宣告,以前只支援類名、介面、陣列及callable
兩種風格:強制轉換模式(預設)與嚴格模式
<?php
// coercive mode
function sumofints(int ...$ints)
var_dump(sumofints(2, '3', 4.1));
2.返回型別宣告
<?php
function arrayssum(array ...$arrays): array
, $arrays);
}print_r(arrayssum([1,2,3], [4,5,6], [7,8,9]));
3.??運算子
?? 用於替代需要isset的場合,這是乙個語法糖。
<?php
// fetches the value of $_get['user'] and returns 'nobody'
// if it does not exist.
$username = $_get['user'] ?? 'nobody';
// this is equivalent to:
$username = isset($_get['user']) ? $_get['user'] : 'nobody';
// coalescing can be chained: this will return the first
// defined value out of $_get['user'], $_post['user'], and
// 'nobody'.
$username = $_get['user'] ?? $_post['user'] ?? 'nobody';
4.<=> 比較運算子
就是看兩個表示式值的大小,三種關係: = 返回0、< 返回-1、 > 返回 1
<?php
// integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
5.define支援定義陣列型別的值
php 5.6已經支援const 語法定義陣列類的常量,php7中支援define語法。
<?php
define('animals', [
'dog',
'cat',
'bird'
]);echo animals[1]; // outputs "cat"
6.匿名類
<?phpinte***ce logger
private $logger;
public function getlogger(): logger
public function setlogger(logger $logger)
}public function log(string $msg)
});
7.增加了整除函式 intdiv
小結:
php 7在效能方面的突破成為近來最熱門的話題之一,目前官方php 7.0.0 beta 2已經發布
新特性
效能提公升:php 7要比php 5.6快兩倍
全面一致的64位支援
移除了一些老的不在支援的sapi(伺服器端應用程式設計埠)和擴充套件
新增了空接合操作符(??)
PHP7的新特性
php7 從發布到現在已經有快三年的時間了,現在已經發展到 php7.2.9 版本了。它的發布給 php 帶來了很大的效能提公升,這主要是得益於 php 對 zend 引擎的深度優化,同時還降低了 php 對系統的資源占用。主要的變化有以下幾點 在php之前的版本中,php 在語法解析階段直接生成了...
php7的新特性
php7新特性 太空船操作符 echo 1 1 0 echo 1 2 1 echo 2 1 1 型別宣告 declare strict types 1 strict types 1表示開啟嚴格模式 function sum int.ints int 3.null合併操作符 page 0 page?0...
PHP7 常用新特性
1.標量型別宣告 php是一種弱型別的程式語言,因此沒有提供任何方法來指定輸入引數和返回值的型別,php7突破了這種現狀,增加了對標量型別 int,float,string,bool 的宣告支援,增加declare strict types 1 指令宣告是否嚴格型別校驗,來看一段 declare s...