タグ

php8に関するokumuraa1のブックマーク (10)

  • 【PHP8.1】静的変数を継承したときの挙動が変更になる - Qiita

    class A{ public static int $hoge = 1; // 普通のクラス変数 public function foo(){ static $foo = 1; // ← これ return $foo++; } } $a = new A(); $a->foo(); // 1 $a->foo(); // 2 $a->foo(); // 3 関数・メソッド内でstaticを付けて変数定義すると、その変数値はプログラムが終了するまでずっと保持されます。 イメージとしては、関数ローカルのクラス変数みたいなかんじでしょうか。 そしてこの静的変数、クラス変数と並べてみると動作がほんのり微妙に異なっているんですよね。 class A { public static int $hoge = 1; public function foo() { static $foo = 1; retur

    【PHP8.1】静的変数を継承したときの挙動が変更になる - Qiita
  • モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―

    2021/12/21 PHPerKaigi petit - PHP8.1リリース祝賀会 でのトーク「モダンPHPテクニック 12選 ―PsalmとPHP 8.1で今はこんなこともできる!―」のスライドです。発表時点からごくわずかに加筆修正した部分があります。 https://phperkaigi.connpass.com/event/233022/Read less

    モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
  • PHP: PHP 7.4.x から PHP 8.0.x への移行 - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

  • PHP: PHP 8.0.0 Release Announcement

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: PHP 8.0.0 Release Announcement
  • PHP 8の新機能(新機能、改善点、およびJITコンパイラー)

    PHP 8の新機能(新機能、改善点、およびJITコンパイラー) PHP 8が2020年11月26日に正式にGAリリースされました! 今回の新しいメジャーアップデートでは、多くの最適化と強力な機能が導入されます。記事では、より良いコードを書き、より堅牢なアプリケーションを構築することができる最も興味深い変更点をご紹介します。 PHP 8.0のリリース発表 PHP JIT(ジャストインタイム・コンパイラー) PHP 8の最も高く評価されている新機能は、ジャストインタイム(JIT)コンパイラーです。 JITとは何でしょうか? RFC提案では、JITについて次のように説明しています。 PHP JITはOPcacheの一部として、しかしほぼ独立したものとして実装されます。PHPのコンパイル時に有効無効を設定します。有効にした場合、PHPファイルのネイティブコードがOPCacheの共有メモリに保存さ

    PHP 8の新機能(新機能、改善点、およびJITコンパイラー)
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
  • 【PHP8.0】PHPにオブジェクト初期化子が導入される - Qiita

    これまで何度も塩漬けにされたり却下されたりしていたオブジェクト初期化子ですが、ついにPHP8.0で導入されることになりました。 オブジェクト初期化子が何かというとこれです。 これはオブジェクト初期化子でいいのか? 日語で何と表すのか適切な単語が思いつかなかったのでとりあえずオブジェクト初期化子としておきます。 愚直に訳すと"コンストラクタ引数昇格"ですが、そんな単語は無いうえに型昇格と紛らわしいです。 引数プロパティ宣言もパラメータプロパティ宣言もほぼ使われてないし何と表現すればいいのだろう。 きっと誰かが適切な語をプルリクしてくれるはず。 以下は該当のRFC、PHP RFC: Constructor Property Promotionの日語訳です。 PHP RFC: Constructor Property Promotion Introduction PHPでは現在のところ、オブ

    【PHP8.0】PHPにオブジェクト初期化子が導入される - Qiita
  • 【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる - Qiita

    Attributes v2というRFCが投票中です。 投票期間は2020/05/04まで、投票者の2/3の賛成で受理されます。 2020/04/27時点では賛成48反対1で、ほぼ間違いなく可決されます。 Attributes v2 Introduction このRFCは、クラス/プロパティ/関数/メソッド/引数/定数の宣言に、構造化されたアトリビュートをメタデータとして記述できるようにする提案です。 アトリビュートは、コードの宣言に直接設定ディレクティブを埋め込むことで定義されます。 同じような概念としてJavaのAnnotation、C#/C++/Rust/HackにおけるAttribute、Python/JavascriptにおけるDecoratorが存在します。 これまで、PHPではこのようなメタデータとしては非構造的であるdoc-commentsしか存在しませんでした。 しかしdo

    【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる - Qiita
  • PHP8でJIT導入 - 一歩上のレベルの言語に

    PHPの次期メジャーアップデートバージョンは「PHP 8」として開発が進められている。このバージョンにはJITコンパイラの導入が予定されており、近年高速化が進められてきたPHP実行環境のさらなる高速化が予定されている。 JAXenterは1月23日(米国時間)、「PHP 8 interview: "JIT will bring the language to a whole new level"」において、現在のPHP 8の開発状況や今後の見通しについて開発者目線からの情報を伝えている。特に興味深い内容は次のとおり。 PHP 8.0のリリーススケジュールはまだ定まっていない。1つの可能性として、アルファ版に到達するまで毎月プレビュー版をリリースするというものがある。PHP 8がまだリリースされない可能性も指摘されているが、PHP 8の開発は速いペースで続いており、2020年中に登場するので

    PHP8でJIT導入 - 一歩上のレベルの言語に
  • 1