整理了一些常用的新特性,歡迎按讚! ! !
新增操作符
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'
]);
'bird'
]);
回傳型別宣告
function test() :int
{
return 1; //true
return '1'; //true
}
return 'string'; //false
}
標量型別宣告
{
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() {
$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']()
關於命名空間
use somenamespaceClassB;
use somenamespaceClassC as C;
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 的修改
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