首頁 >php教程 >php手册 >PHP7 新功能 簡介

PHP7 新功能 簡介

WBOY
WBOY原創
2016-08-20 08:47:351492瀏覽

整理了一些常用的新特性,歡迎按讚! ! !

 

新增操作符
1、??
$username = $_GET['user'] ?? '';
$username = isset($_GET['user']) ? $_GET['user'] : ' nobody';

2、
$number1 $number2; 當$number1 小於、等於、大於$number2 時分別回傳-1,0,1


新增函數
intdiv(被除數, 除數) — 對除法結果取整
intdiv(3, 2) //1



define 可以定義陣列
define('ANIMALS', [
'dog',
'cat',
'bird'
]);

'cat',

'bird'

]);



 


回傳型別宣告
function test() :int
{
return 1; //true
return '1'; //true

return 'string'; //false

}

return 'string'; //false
}




標量型別宣告

function test(string $name) :int

{
return 22;
}
string integer float boolean


string integer float boolean




可以捕捉核心錯誤
Error層次結構
Throwable
  Error
    ArithmeticError
  Aso  〜〜〜〜〜 〜 〜、〜〜 〜 〜〜、〜) sertionError
    ParseError
    TypeError

  Exception


核心排序的最佳化
? //快速排序(非穩定排序)
php7: array(0=>0, 1=>0) //快速排序+選擇排序(穩定排序)



比php5多了個抽象語法數(abstract snytax 。 config) {
return new class($config) {};
}



暫時綁定一個方法到物件上並呼叫
$f = function() {

p($this->name);

$f = function() {
p($this->name);
}

} ;


class F {
private $name = 'F';
}

$f->call(new F);




統一的語法變數
括號不會影響行為由左至右

$a = 'b';
$b = ['1', '2'
$a = 'b';
$b = ['1', '2'
$a = 'b';
$b = ['1', '2'
$a = 'b';
$b = ['1', '2' , '3'];
var_dump($$a[1]);
var_dump(($$a)[1]);

php5:
Notice: Uninitialized string offset: 1 in E:Program FilesphpStudyWtest. line 4
Notice: Undefined variable: in E:Program FilesphpStudyWWWtest.php on line 4
NULL

Parse error: syntax error, unexpected '[' in E:Program Files error: syntax error, unexpected '[' in E:Program Files StudyWtest. "2" string(1) "2"


     Expression          PHP5   》     PHP5         PHP5    〴   〴 ']['baz']}   ($$foo) ['bar']['baz']
$foo->$bar['baz']    $foo->{$bar['baz']}    ($foo->$bar)['baz']
$ foo->$bar['baz']()    $foo->{$bar['baz']}()   ($foo->$bar)['baz']()
Foo::$bar[' baz']()    Foo::{$bar['baz']}()    (Foo::$bar)['baz']()



關於命名空間

// 7 code Pre PHP 7 somenamespaceClassA;

use somenamespaceClassB;
use somenamespaceClassC as C;

use function somenamespacefn_a;

use function somenamespacefn_b;
use function somenamespacefn_c;

use const somenamespaceConstA;
use const somenamespaceConstB;
use const somenamespaceConstC;

// PHP 7+ code
use somenamespace{ClassA, ClassB, ClassC as C};
use function somenamespace{fn_a, fn_b, fn_c};
use const somenamespace{ConstA, ConstB, ConstA, Constc 的修改 list;
  1、
  list($array[], $array[], $array[]) = [1, 2, 3];
  var_dump($array);
 〔5:$array); int(3) [1]=> int(2) [2]=> int(1) }
  php7: array(3) { [0]=> int(1) [1]=> int(2) [ 2]=> int(3) }


  2、不允許賦空值
  list() = $a;
  list(,,) = $a;
 、 = $a;

  php7會報錯Fatal error: Cannot use empty list

  3、不再支援字串分割
  $『 ($x, $y);

  php5: string(1) "x" string(1) "y"
  php7: null null

foreach 的修改
變數php7: null null

foreach 的修改
變數php7: null null

foreach 的修改

變數變數值[0];

foreach ($array as &$val) {

var_dump($val);🎜 $array[1] = 1;🎜 }🎜 php5:int(0)🎜 php7: int(0) int(1 )🎜 🎜 🎜

參考的來源位址:http://www.php7.site/book/php7/variable-changes-22.html

提升php效能的tips:http://www.laruence.com/2015/12/04/3086.html

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn