検索

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

新しいオペレーター
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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません