ホームページ php教程 php手册 PHP7の新機能紹介

PHP7の新機能紹介

Aug 20, 2016 am 08:47 AM

よく使われる新機能をいくつかまとめましたので、「いいね!」をお願いします! ! !

新しいオペレーター
1. ??
$username = $_GET['user'] ?? '';
$username = isset($_GET['user']) $_GET['user'] : ' 誰も' ;

2. <=>
$number1 <=> $number1 が $number2 より小さい場合、等しい場合、または大きい場合は、それぞれ -1、0、1 を返します


新しい関数
intdiv(divisor, divisor) — 除算結果を丸める
intdiv(3, 2) //1



defineは配列を定義できます
define('ANIMALS', [
'dog',
'cat',
'bird'
]);


戻り値の型宣言
function test() :int
{
return 1; //true
return 'string' }


;

スカラー型宣言

function test(string $name) :int
{
return 22;
}
string integer float boolean



コアエラーをキャッチできる

エラー階層
Throwable
Error
ArithmeticError
DivisionByZeroError

AssertionError
ParseError
TypeError
Exception


コアソートの最適化
php5: array(1=>0, 0=>0 ) //クイックソート (不安定ソート)
php7: array(0=>0, 1=>0) //クイックソート + 選択ソート (安定ソート)



php5 よりも抽象的な構文 Number (abstract snytaxツリー) AST
PHP -> パーサー -> AST -> オペコード -> 実行
パフォーマンスが向上し、メモリ消費量も増加しましたが、無視できます


新しいクラスを通じて匿名クラスをインスタンス化できます
getAnonymousClass($config) {
return new class($config) {};
}



メソッドをオブジェクトに一時的にバインドし、
$f = function() {
p($ this->name) を呼び出します;
};

クラス F {
private $name = 'F';

}


$f->call(new F);



統一された構文変数
括弧は左から右への動作に影響しません

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

php5:
注意: E:Program FilesphpStudyWWWtest.php に初期化されていない文字列オフセット: 1 4 行目
注意: 未定義の変数: E:Program FilesphpStudyWWWtest.php 4 行目
NULL

解析エラー: 構文エラー、予期しない '[' が E:Program FilesphpStudyWWWtest.php 4 行目

php7: string(1 ) "2" string(1) "2"


式 PHP5 PHP7 $$foo['bar']['baz'] ${$foo['bar']['baz']} ($$foo ) ['bar']['baz']
$foo->$bar['baz'] $foo->gt;{$bar['baz']} ($foo->$bar)['baz ' ]
$foo->$bar['baz']() $foo->{$bar['baz']}() ($foo->$bar)['baz']()
Foo ::$bar['baz']() Foo::{$bar['baz']}() (Foo::$bar)['baz']()




名前空間について
/ / Pre PHP 7 コード
somenamespaceClassA を使用します;
somenamespaceClassB を使用します;
somenamespaceClassC を C として使用します;

関数 somenamespacefn_a を使用します;
関数 somenamespacefn_b を使用します;
関数 somenamespacefn_c を使用します;

const somenamespaceConstA を使用します。
const somenamespaceConstC を使用します。
// PHP 7+ コード

use somenamespace{ClassA, ClassB, ClassC as C};

use function somenamespace{fn_a, fn_b, fn_c};
use const somenamespace{ConstA, ConstB, ConstC};

リストの変更
1.
list($array[], $array[], $array[]) = [1, 2, 3];
var_dump($array);
php5: array(3) { [0]=> ; int(3) [1]=> int(2) [2]=> int(1) }
; php7: array(3) { [0]=> int(2) [2]=> int(3) }


2. null 値の割り当ては許可されません
list() = $a;
list(,,) = $a;
list($x, list (), $y) = $a;

php7 はエラーを報告します 致命的なエラー: 空のリストは使用できません

3. 文字列分割はサポートされなくなりました
$string = "xy";
list($x, $ y) = $string;
var_dump($x, $y);

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

foreach
変数参照の変更は、 array
$array = [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 パフォーマンスを向上させるためのヒント: http://www.laruence.com/2015/12/04/3086.html

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)